现在的位置: 首页 > 综合 > 正文

Makefile 自动变量

2013年10月04日 ⁄ 综合 ⁄ 共 615字 ⁄ 字号 评论关闭

自动变量用于自动代替一条rule的目标和依赖列表:
以下是Makefile中的7种自动变量及其说明:

$@表示规则的目标文件名。如果目标是一个文档文件(Linux中,一般称.a文件为
文档文件,也称为静态库文件) ,那么它代表这个文档的文件名。在多目标模式
规则中,它代表的是哪个触发规则被执行的目标文件名。
$%当规则的目标文件是一个静态库文件时,代表静态库的一个成员名。例如,规则
的目标是“foo.a(bar.o)”,那么,“$%” 的值就为 “bar.o”,“$@”的值为“foo.a”。
如果目标不是静态库文件,其值为空
$<规则的第一个依赖文件名。如果是一个目标文件使用隐含规则来重建,则它代表
由隐含规则加入的第一个依赖文件。
$^:所有依赖文件的列表,用空格隔开,如果是archive,则表示menber name
$?依赖文件列表中所有比目标新的文件,之间用空格分割。如果目标是静态库文件名,代
表的是库成员(.o文件)。
$+与`$^' 类似, 但是如果依赖列表中有重复文件名,其重复次数和文件顺序仍然会被保留在`$+`中。当用link命令生成so连接时比较有用。
$|所有的order-only依赖, 用空格分开.

$* 隐含规则中匹配的匹配模式的字段,比如目标为dir/a.foo.b,目标模式为a.%.b 那么$*
为 dir/foo.

原文地址:http://ubuntugeek.blogbus.com/logs/44392322.html

抱歉!评论已关闭.