在makefile中賦值方式有:'='、':='、'?='和'+='。
a =a $(b)b =b
all:
echo $(a)
#執行結果:echo a b
a b
這種賦值方式是沒有先後順序的,但是這種賦值方式可能會出現問題,例如遞迴定義時:a = $(a)
a :=a $(b)b =b
all:
echo $(a)
# 執行結果:echo a
a
這種賦值方式有先後順序,只能使用已經定義的變數。
a =aa ?=b
b ?=c
all:
echo $(a) $(b)
#執行結果:echo a c
a c
這種賦值是在詢問a是否等於b,如果前邊定義了a變數,那麼前邊定義時a的值是多少還是多少。如果前邊沒有定義,如b,就對其進行賦值。
a =aa +=b
all:
echo $(a)
#執行結果:echo a b
a b
這種賦值就是在原有的定義上在新增。
注意:
#定義乙個變數其值為空格nullstring :=blank_space := $(nullstring)#end of the line
這樣定義是有好處的。
makefile中 賦值區別
在makefile中我們經常看到 這幾個賦值運算子,那麼他們有什麼區別呢?我們來做個簡單的實驗 新建乙個makefile,內容為 ifdef define vre vre hello world else endif ifeq opt define vre hello world first end...
Makefile中幾種賦值( )
變數的引用方式 變數名 或者 例如 就是取變數objs的值 注意 當變數名為單字元是可以採用 a 的方式引用,多字元則不行 var a abc var b var a 222 var c var a var a def var b的值會改變為def,而var c的值還是為abc var a var ...
Makefile中的變數
makefile中的變數 2010年03月25日 b makefile b b 中的變數 b b b b b b 在makefile中,變數就是乙個名字 像是c語言中的巨集 代表乙個文字字串 變數的值 在makefile的目標 依賴 命令中引用乙個變數的地方,變數會被它的值所取代 與c語言中巨集引用...