Makefile 中=和:= 的区别
1 2 3 4 5
| x = foo y = $(x) bar x = xyz all: @echo "$(y)"
|
执行make后,得到结果
xyz bar
1 2 3 4 5
| x := foo y := $(x) bar x := xyz all: @echo "$(y)"
|
执行make后,得到结果
foo bar
可以看到使用“:=”使用的是赋值时的值,也就是在y := $(x) bar时x的值,此时x的值为bar,所以y的值为 foo bar。
使用“=”,使用的是最终的值,也就是在y = $(x) bar赋值时,使用的是最后的x的值,为xyz,所以最后的y值为xyz bar。