makefile中的變數賦值

2022-07-22 18:06:12 字數 761 閱讀 1567

在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 =a

a ?=b

b ?=c

all:

echo $(a) $(b)

#執行結果:echo a c

a c

這種賦值是在詢問a是否等於b,如果前邊定義了a變數,那麼前邊定義時a的值是多少還是多少。如果前邊沒有定義,如b,就對其進行賦值。

a =a

a +=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語言中巨集引用...