Makefile 目标 `.co` 的用途是什么?
最近有人提到 Makefile 中的目标 .co
是为了交叉兼容性,但我无法理解它的用途。谁能澄清一下吗?
Someone recently mentioned the target .c.o
in Makefiles for cross compatability, but I fail to understand its purpose. Can anyone clarify?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这是一个老式后缀规则。更新的方法是使用 模式规则:
It's an old-fashioned suffix rule. The more up-to-date way to do it is to use a pattern rule:
这是将
.c
文件(即 C 模块)转换为.o
目标文件的固定规则。它的存在是为了让您不必自己编写此规则,并通过 Make 变量进行参数化,例如CC
(要使用的 C 编译器)、CFLAGS
(编译器标志)、因此,如果您使用此隐式规则来编译 C 模块并且不修改任何 Make 变量,那么构建代码的人可以在命令行上指定编译器和标志,而无需编辑 Makefile。
It's a canned rule for translating
.c
files, i.e. C modules, to.o
object files. It exists so you don't have to write this rule yourself and is parameterized by Make variables such asCC
(the C compiler to use),CFLAGS
(compiler flags), etc.So, if you use this implicit rule to compile C modules and don't tinker with any Make variables, then the person building your code can specify a compiler and flags on the command line without editing the Makefile.