您的位置:首页 > 其它

makefile 自动化变量

2015-11-10 16:33 344 查看
 

print xxx: *.c *.h
echo $?
echo $<
echo $^
echo $@
touch print


$? 所有比目标文件更新的依赖文件列表,空格分割。如果目标是静态库文件名,代表的是库成员( .o文件)。

$< 规则的第一个依赖文件名。如果是一个目标文件使用隐含规则来重建,则它代表由隐含规则加入的第一个依赖文件

$^ 规则的所有依赖文件列表,使用空格分隔。如果目标是静态库文件,它所代表的 只能是所有库成员( .o文件)名。一个文件可重复的出现在目标的依赖中,变量 “ $^”只记录它的一次引用情况。就是说变量“ $^”会去掉重复的依赖文件

 

 





 

$@ 表示规则的目标文件名。如果目标是一个文档文件( Linux中,一般称.a文件为 文档文件,也称为静态库文件),那么它代表这个文档的文件名。在多目标模式 规则中,它代表的是哪个触发规则被执行的目标文件名。

如make xxx 就会输出xxx, make 则会输出print
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: