首页 > Linux操作系统 > Linux操作系统 > GNU Make自动变量一览
GNU 自动变量一览表
| 名称 | 含义 |
| $@ | 规则目标的文件名.如果目标是档案文件的一个成员,"$@"就是档案文件的名称 |
| $% | 当目标是档案文件的一个成员时,"$%"是该成员的名称.否则"$%"为空 |
| $< | 第一个依赖文件的名称 |
| $? | 以空格隔开的比目标新的所有依赖文件名.若依赖文件是档案文件的成员,只使用成员的名称 |
| $^ | 以空格隔开的所有依赖文件名.若依赖文件是档案文件的成员,只使用成员名称.无论一个依赖文件出现过多少次,"$^"值中只包含其名称的一个拷贝 |
| $+ | 与"$^"相似,但多次列出的依赖文件按照它们在构造文件中出现的顺序复制.这对于链接命令中以特定顺序重复出现的库文件名有作用 |
| $* | 隐含规则匹配的词干.若目标为"dir/a.foo.b"且目标模式为"a.%.b",则词干为"dir/foo".对静态模式规则,词干是文件名中与目标模式中"%"匹配的部分.应避免在隐含规则或静态模式规则之外使用"$*" |
| $(@D) | 删除结尾斜杠的目标文件名的目录部分.若"$@"的值为"dir/foo.o",则"$(@D)"为"dir".若"$@"不包含斜杠,则"$(@D)"为"." |
| $(@F) | 目标文件名中目录下的文件部分.如果"$@"的值为"dir/foo.o",那么"$(@F)"为"foo.o".它等同于"$(notdir $@)" |
| $(*D) | 词干中的目录部分,例如上例中的"dir" |
| $(*F) | 词干中的目录下文件部分,例如上例中的"foo" |
| $(%D) | 目标档案文件成员的目录部分.仅对形为"archive(member)"的档案文件成员目标有意义,且仅在member包含目录名时有用 |
| $(%F) | 目标档案文件成员中的目录下文件部分 |
| $( | 第一个依赖文件的目录部分 |
| $( | 第一个依赖文件的目录下文件部分 |
| $(^D) | 所有依赖文件的目录部分 |
| $(^F) | 所有依赖文件的目录下文件部分 |
| $(?D) | 比目标新的所有依赖文件的目录部分 |
| $(?F) | 比目标新的所有依赖文件的目录部分 |
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24790158/viewspace-1041130/ ,如需转载,请注明出处,否则将追究法律责任。