自动变量
在单个规则的上下文中,Make 自动定义了许多特殊变量。这些变量可以为 makefile 中的每个规则赋予不同的值,旨在使编写规则更简单。这些变量只能用于规则的配方部分。
变量 | 描述 |
---|---|
$@ |
规则目标的文件名 |
$% |
目标成员的名称,如果规则的目标是存档 |
$< |
第一个先决条件的文件名 |
$^ |
所有先决条件的清单 |
$? |
列出比目标更新的所有先决条件 |
$* |
隐含或模式规则的词干 |
以下示例使用自动变量生成通用规则。这指示如何使用相同的名称从 .c 文件构造 .o 文件。由于我们不知道受影响文件的具体名称,因此我们使用 $@
作为输出文件名称的占位符,将 $^
用作先决条件列表的占位符(在本例中为输入文件列表)。
%.o: %.c
cc -Wall $^ -c $@