qianlei90 / Blog

那些该死的文字呦
https://qianlei.notion.site
103 stars 20 forks source link

Make中=、:=、?=、+=的区别 #12

Closed qianlei90 closed 7 years ago

qianlei90 commented 7 years ago

最基本的赋值。make会将整个makefile展开后,再决定变量的值。也就是说,变量的值将会是整个makefile中最后被指定的值。

x = foo
y = $(x) bar
x = xyz
y的值将会是xyz bar,而不是foo bar.

覆盖之前的值,变量的值决定于它在makefile中的位置,而不是整个makefile展开后的最终值。

x := foo
y := $(x) bar
x := xyz

y的值将会是foo bar,而不是xyz bar.

如果没有被赋值过就赋予等号后面的值

添加等号后面的值

- 完 -