Makefile变量
Makefile变量赋值及使用
方式1:“=”
使用“=”表示变量最终的值不一定是当前值,如果后面的语句有修改变量值,那就使用后面的值。例子:
var1 = abc
var2 = $(var1) #引用之前已经定义过的变量,变量用括号括起来,然后前面加"$"
var1 = def
show:
@echo var1 : $(var1)
@echo var2 : $(var2)
结果var1的值是def, var2的值也是def;
方式2:“:=”
使用“:=”就跟我们C语言中的赋值语句“=”一样,当前赋什么值,变量就是什么值,变量的值在此时被确定,看例子:
var1 = abc
var2 := $(var1)
var1 = def
show:
@echo var1 : $(var1)
@echo var2 : $(var2)
结果var1的值是def, var2的值也是abd;
方式3: “?=”
使用“?=”表示如果变量之前没有被赋值则使用现在被赋给的值,如果之前已经被赋值了,那么就是用之前赋的值,例子:
var1 = abc
var2 = def
var2 ?= $(var1)
show:
@echo var2 : $(var2)
var2结果是def, 因为var2已经被赋值为了“def”, 后面“?=”不会修改var2的值;
如果把var2 = def屏蔽掉,则var2的值有var1最终值确定,例子:
var1 = abc
#var2 = def
var2 ?= $(var1)
var1 = def
show:
@echo var2 : $(var2)
注意var2的值是“def”,而不是“abc”
方式4: “+=”
使用“+=”表示在变量后面追加内容,例子:
var1 = abc
var1 += def
show:
@echo var1: $(var1)
var1的值是“abc def”, 注意中间有空格;