= 递归展开变量
:= 直接展开变量
这两个中文名称,不是很好理解。
①递归展开变量 =
做成下面的Makefile
然后执行
$make debug
#val2被定义为:递归展开变量 val1=5 |
输出结果
$val2=6
②直接展开变量 :=
#val2被定义为:直接展开变量 val1=5 |
输出结果
$val2=5
※这样就比较好理解,"递归展开"和"直接展开"的区别了
另外,
操作符?= 定义的变量(条件赋值的赋值操作),属于递归展开变量。
#val2通过?=被定义 val1=5 |
输出结果
$val2=6