NMake 和 GNU Make在隐含规则上有细微的差别.
首先在隐含规则的定义上,NMake的规则是(根据MSDN):
.fromext.toext: commands比如
.cpp.obj:
$(CC) $(CFLAGS) -c $<
很明显,它定义的是从什么到什么的规则.
但是GNU Make在定义一个规则的时候是相反的:
%.o: %.c
commands
可以理解为什么依赖什么.
另外NMake有批模式规则,只要在定义规则的时候多加一个冒号即可:
.fromext.toext:: commands批模式规则可以省去每次都打印命令信息,只输出源文件名和编译警告或错误信息.