Linux Makefile中的:=, =, ?=的区别 Home » 编程开发 » 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。 造物之前,必先造人。