關於makefile的=: =? =+區別

= 是最基本的賦值
:= 是覆蓋之前的值
?= 是如果沒有被賦值過就賦予等號後面的值
+= 是添加等號後面的值



1、“=”

      make會將整個makefile展開後,再決定變量的值。也就是說,變量的值將會是整個makefile中最後被指定的值。看例子:

            x = foo
            y = $(x) bar
            x = xyz

      在上例中,y的值將會是 xyz bar ,而不是 foo bar 。

2、“:=”

      “:=”表示變量的值決定於它在makefile中的位置,而不是整個makefile展開後的最終值。

            x := foo
            y := $(x) bar
            x := xyz


發佈了30 篇原創文章 · 獲贊 25 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章