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。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章