makefile,?= := == = 的區別?最好舉個列子,thanks
:= 是立即變量賦值,在定義時值已經被確定
= 是延時變量賦值,只有在這個變量被使用時才展開,$(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。