"=":递归赋值,即赋值后并不马上生效,等到使用时才真正的赋值,此时通过递归找出当前的值,所有在使用是很有可并不是开始赋的值,所有使用时有应该注意
例子:
SUBARCH=arm
ARCH = $(SUBARCH)
all:
@echo $(ARCH)
输出:
arm
而
ARCH = $(SUBARCH)
SUBARCH=arm
all:
@echo $(ARCH)
也输出:
arm
"?=":仅仅在变量还没赋值的情况下才有效,所有一般用在第一次赋值
":=":直接赋值,这就是我们常规的那种赋值方式,一赋值马上有效。在没赋值是为空字符。
"+=": 在变量后加上字符