0
在makefile中,我經常在文檔/論壇中看到擴展這個詞很多,儘管它很少被定義。談論makefile時,擴展變量或參數究竟意味着什麼?makefile中的擴展
在makefile中,我經常在文檔/論壇中看到擴展這個詞很多,儘管它很少被定義。談論makefile時,擴展變量或參數究竟意味着什麼?makefile中的擴展
展開字符串表示將字符串內的變量或函數調用的引用(例如$(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
,確實是。
對於這樣一個簡單的想法,這是非常難以解釋... – Beta