2013-07-17 45 views
0

在makefile中,我經常在文檔/論壇中看到擴展這個詞很多,儘管它很少被定義。談論makefile時,擴展變量或參數究竟意味着什麼?makefile中的擴展

+0

對於這樣一個簡單的想法,這是非常難以解釋... – Beta

回答

1

展開字符串表示將字符串內的變量或函數調用的引用(例如$(NAME))替換爲這些東西的值。

考慮:

FOO = a b c 
BAR = $(FOO) d e 
BAZ = $(BAR) f g 

BAZ值是$(BAR) f g。如果您嘗試使用它:

$(info $(BAZ)) 

然後讓擴展變量,這就是它取代$(BAZ)BAZ值:

$(info $(BAR) f g) 

然後$(BAR)BAR值:

$(info $(FOO) d e f g) 

then $(FOO) with the value of FOO

$(info a b c d e f g) 

和什麼也沒有向左擴大它執行info功能和打印出 「A B C d E F G」。

請注意,有些東西會擴大變量,其他的則不會。例如,分配BAR = $(FOO) d e確實是而不是擴展了右邊的$(FOO)。另一種作業BAR := $(FOO) d e,確實是