收集了网上的一些资料,记录下来:
在Makefile文件中,对变量有好几种的赋值方式:"=", ":=", "?=", "+="
1) "=" 递归展开赋值,右侧的变量还允许在后面定义。左侧变量的值,由右侧变量最后的值决定。
2) ":=" 将右侧中包含的变量直接展开给左侧的变量赋值。
3) "?=" 只有当左侧变量还没有被定义的时候,才会将右侧的值赋给左侧;
如果左侧变量已经被定义过,即使是空值,?=不会给左侧赋值。
4) "+=" 给左侧变量追加值。
举例例子:
a = 1
b = 2
c := $(a)3
d = 4
d ?= 5
e = $(a)4
b+=6
a = 7
f =
f ?= 8
all:
@echo ${a} --------》输出: 7
@echo ${b} --------》输出: 2 6 (中间有个空格)
@echo ${c} --------》输出: 13
@echo ${d} --------》输出: 4
@echo ${e} --------》输出: 74
@echo ${f} --------》输出: 一个空白
阅读(2388) | 评论(0) | 转发(0) |