在Makfile中一共有4中賦值方法,形式分別以下:shell
VAR = value VAR ?= value VAR := value VAR += value
賦值不是當即生效,要等到在使用變量VAR時才展開。若一個變量引用另一個變量,兩個變量定義的位置,誰在前誰在後沒有任何關係,都能達到一樣的效果。也是很容易出錯的地方,例如:spa
SUBDIR=workspace DIR=$(SUBDIR) SUBDIR=/usr/local/ all: @echo $(DIR)
結果是:/usr/local/code
不會遞歸展開,若引用的變量不存在,就展開爲空串遞歸
若是變量沒有初始化,就給它賦值class
在已有賦值後追加賦值變量