自動變數
在單個規則的上下文中,Make 自動定義了許多特殊變數。這些變數可以為 makefile 中的每個規則賦予不同的值,旨在使編寫規則更簡單。這些變數只能用於規則的配方部分。
變數 | 描述 |
---|---|
$@ |
規則目標的檔名 |
$% |
目標成員的名稱,如果規則的目標是存檔 |
$< |
第一個先決條件的檔名 |
$^ |
所有先決條件的清單 |
$? |
列出比目標更新的所有先決條件 |
$* |
隱含或模式規則的詞幹 |
以下示例使用自動變數生成通用規則。這指示如何使用相同的名稱從 .c 檔案構造 .o 檔案。由於我們不知道受影響檔案的具體名稱,因此我們使用 $@
作為輸出檔名稱的佔位符,將 $^
用作先決條件列表的佔位符(在本例中為輸入檔案列表)。
%.o: %.c
cc -Wall $^ -c $@