makefile、shell相关

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。

nephen wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
坚持原创技术分享,您的支持将鼓励我继续创作!