返回首页   进站必读

10.2 变量,模式规则


10.2 变量,模式规则

10.2.1 调用变量

关于变量的语法规则,先看一个简单的例子:

all:
	@echo $(foo)
foo = $(bar)
	bar = huh

执行make会打印huh。
当make读到foo = $(bar)时,定义foo的值是$(bar),但并不立即展开$(bar),然后读到bar = huh,
定义bar的值是huh。然后根据依赖关系图展开,最后执行echo huh。

10.2.2 自动变量

$@ 表示规则中的目标
$< 表示规则中的第一个条件
$^ 表示规则中的所有条件,组成一个列表,以空格分割,如果这个列表中有重复的项则消除重复的项。

10.2.3 模式规则(隐式规则)

"%"出现在目标和依赖条件中
%.o:%c
以.o结尾的文件依赖以.c结尾的文件

%: %.c
可执行文件依赖.c文件