什么是Makefile Target` .c.o`?

时间:2012-02-10 19:13:47

标签: makefile gnu-make

有人最近在Makefile中提到了目标.c.o以实现交叉兼容性,但我无法理解其目的。任何人都可以澄清吗?

2 个答案:

答案 0 :(得分:33)

这是old-fashioned suffix rule。更新的方法是使用pattern rule

%.o : %.c

答案 1 :(得分:2)

这是一个将.c文件(即C模块)转换为.o目标文件的固定规则。它存在,因此您不必自己编写此规则,并通过Make变量参数化,例如CC(要使用的C编译器),CFLAGS(编译器标志)等。

因此,如果您使用此隐式规则来编译C模块并且不修改任何Make变量,那么构建代码的人可以在命令行上指定编译器和标志,而无需编辑Makefile。