:= 是立即变量赋值,在定义时值已经被确定
= 是延时变量赋值,只有在这个变量被使用时才展开,$(VAR)就是一种被使用
例
VAR_A=abcd
VAR_B=$(VAR_A)
VAR_C:=$(VAR_A)
VAR_A=cdef
此时,$(VAR_B) 为 cdef
(跟随VAR_A变化)。 $(VAR_C)
为 abcd (不随VAR_A变化)。
?= 是条件赋值, 比如
foo ?= $(bar)
只有当foo变量还没有被定义的时候,才会将bar的值赋给foo。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。