"Makefile目标`.c.o`的作用是什么?"

41

最近有人在Makefile中提到了用于交叉编译的目标文件.c.o,但我不明白它的作用。请问有人可以解释一下吗?

2个回答

48

2
这是一个用于将 .c 文件(即 C 模块)转换为 .o 目标文件的预设规则。这个规则存在的目的是让你不必亲自编写它,并且可以通过 Make 变量(如 CC,指定 C 编译器;CFLAGS,编译器标志等)进行参数化。
因此,如果你使用这个隐式规则来编译 C 模块,并且不修改任何 Make 变量,那么构建你的代码的人就可以在命令行上指定编译器和标志,而无需编辑 Makefile。

2
但你也可以使用模式规则来实现这一点:例如 make "CC = gcc" - chacham15
1
@chacham15:没错。.c.o 是较早的做法。 - Fred Foo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接