1.后缀规则是一个比较老式的定义隐含规则的方法。后缀规则会被模式规则逐步地取代。因为模式规则更加的清晰。为了和老版本的Makefile兼容,GUN make同样兼容这些东西。
双后缀规则定义了一对后缀:目标文件的后缀和依赖目标(源文件)的后缀。如".c.o"相当于"%o:%c"。
后缀规则中所定义的后缀应该是make所认识的,如果一个后缀是make所认识的,那么这个规则就是单后缀规格,而如果两个连载一起的后缀都被make所认识,那就是双后缀规则。例如".c"和".o"都是make所知道的,因此".c.o"是双后缀规则,意义就是".c"是源文件的后缀,".o"是目标文件的后缀,如下所示:
.c.o:
$(CC) -c $(CFLAGS) $(CPPFLAGS) -o $@ $<
2.命令参数的变量
下面的这些变量都是相关上面的命令的参数,如果没有指名其默认值,那么默认值都是空。
CFLAGS:C语言编译器参数
CPPFLAGS:C预处理器参数
LDFLAGS:链接器参数
CXXFLAGS:C++语言编译器参数
ASFLAGS:汇编语言编译器参数