当前位置: 技术问答>linux和unix
问一个MAKEFILE的简单问题
来源: 互联网 发布时间:2015-10-25
本文导语: 在一个makefile中见到 .CFILES = main.c game.c 那么下面这句什么意思呢: $(.CFILES:.c=.o) 请求指教! | 2.4 隐含规则 (Implicit Rules) 请注意,在上面的例子里,几个产生 .o 文件的命令都是一样的。...
在一个makefile中见到
.CFILES = main.c game.c
那么下面这句什么意思呢:
$(.CFILES:.c=.o)
请求指教!
.CFILES = main.c game.c
那么下面这句什么意思呢:
$(.CFILES:.c=.o)
请求指教!
|
2.4 隐含规则 (Implicit Rules)
请注意,在上面的例子里,几个产生 .o 文件的命令都是一样的。 都是从 .c 文件和相关文件里
产生 .o 文件,这是一个标准的步 骤。其实 make 已经知道怎么做--它有一些叫做隐含规则的
内 置的规则,这些规则告诉它当你没有给出某些命令的时候,应该 怎么办。
如果你把生成 foo.o 和 bar.o 的命令从它们的规则中删除, make 将会查找它的隐含规则,然
后会找到一个适当的命令。它的命令会 使用一些变量,因此你可以按照你的想法来设定它:它使
用变量 CC 做为编译器(象我们在前面的例子),并且传递变量 CFLAGS (给 C 编译器,C++ 编
译器用 CXXFLAGS ),CPPFLAGS ( C 预 处理器旗标), TARGET_ARCH (现在不用考虑这
个),然后它加 入旗标 '-c' ,后面跟变量 $
请注意,在上面的例子里,几个产生 .o 文件的命令都是一样的。 都是从 .c 文件和相关文件里
产生 .o 文件,这是一个标准的步 骤。其实 make 已经知道怎么做--它有一些叫做隐含规则的
内 置的规则,这些规则告诉它当你没有给出某些命令的时候,应该 怎么办。
如果你把生成 foo.o 和 bar.o 的命令从它们的规则中删除, make 将会查找它的隐含规则,然
后会找到一个适当的命令。它的命令会 使用一些变量,因此你可以按照你的想法来设定它:它使
用变量 CC 做为编译器(象我们在前面的例子),并且传递变量 CFLAGS (给 C 编译器,C++ 编
译器用 CXXFLAGS ),CPPFLAGS ( C 预 处理器旗标), TARGET_ARCH (现在不用考虑这
个),然后它加 入旗标 '-c' ,后面跟变量 $