Linux Makefile中的:=, =, ?=的区别

:= 是立即变量赋值,在定义时值已经被确定

= 是延时变量赋值,只有在这个变量被使用时才展开,,$(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。

造物之前,必先造人。

Linux Makefile中的:=, =, ?=的区别

相关文章:

你感兴趣的文章:

标签云: