mingw32-make 工具笔记#
规则#
模式规则#
变量的使用#
规则中的自动变量#
自动变量,只能在规则中使用
自动变量后加 D 是获取目录名跟函数 dir 效果相同
自动变量后加 F 是获取文件名跟函数 notdir 效果相同
- $@, $(@D), $(@F):
$@
表示该规则中的目标(target
)名如果规则目标是归档文件 $@ 表示归档文件名。
在 模式规则 中目标可能不只 1 个, $@ 表示当前
recipe
正在生成的目标名称。
- $%, $(%D), $(%F):
$%
当规则目标是归档文件时,它表示归档成员文件名, 如:在 foo.a(bar.o) 中 $% 表示 bar.o, $@ 表示 foo.a。 如果规则目标不是归档文件, 则 $% 为空。- $<, $(<D), $(<F):
$<
表示规则中的第 1 个依赖(prerequisite
)名称。- $?, $(?D), $(?F):
$?
表示规则中所有 已更新了的 的依赖名称。- $^, $(^D), $(^F):
$^
表示规则中所有依赖文件列表 合并 重复依赖的名- $+, $(+D), $(+F):
$+
也表示规则中所有依文件列表,但 不合并 重复依赖文件,也就是 1 个依赖名可以出现多次- $|:
$|
跟 $^ 功能一致,唯一的区别: 是这儿的依赖文件顺序跟依赖顺序一致- $*, $(*D), $(*F):
模式规则 中 $* 表示目标中的 % 部分: 如由 dir/a.foo.b 引起的模式目标 a.%.b 时, $* 表示 dir/foo
在显示规则中,如果目标名带有后缀如: foo.exe 则 $* 表示 foo 。如果目标名带后缀则 $* 为空