makefile 变量赋值 '=' 和 ':=' 的区别
时间:2010-03-29 来源:yanzhiyi1012
保存此makefile
运行make
#make
later_value
#make
original_value
区别显而易见, := 定义的变量如果值内容本身就是变量,他不会延伸。如果是=,会延伸。所以在使用时,不需要延伸的时候一定要加上: ,防止不可控的情况。
#example a = orginal_value
b = $(a)
a = later_value all: @echo $(b) |
#make
later_value
#example a = orginal_value
b := $(a)
a = later_value all: @echo $(b) |
original_value
区别显而易见, := 定义的变量如果值内容本身就是变量,他不会延伸。如果是=,会延伸。所以在使用时,不需要延伸的时候一定要加上: ,防止不可控的情况。
相关阅读 更多 +