makefile 自動化變數

2021-06-07 17:18:30 字數 647 閱讀 4244

$@

代表規則中的目標檔名。如果目標是乙個文件(linux中,一般稱.a檔案為文件),那麼它代表這個文件的檔名。在多目標的模式規則中,它代表的是哪個觸發規則被執行的目標檔名。

$%

規則的目標檔案是乙個靜態庫檔案時,代表靜態庫的乙個成員名。例如,規則的目標是「foo.a(bar.o)」,那麼,「$%」的值就為「bar.o」,「$@」的值為「foo.a」。如果目標不是函式庫檔案,其值為空。

$<

規則的第乙個依賴檔名。如果是隱含規則,則它代表通過目標指定的第乙個依賴檔案。

$?

所有比目標檔案更新的依賴檔案列表,空格分割。如果目標是靜態庫檔名,代表的是庫成員(.o檔案)的更新情況。

$^

規則的所有依賴檔案列表,使用空格分隔。如果目標是靜態庫檔名,它所代表的只能是所有庫成員(.o檔案)名。乙個檔案可重複的出現在目標的依賴中,變數「$^」只記錄它的一次引用情況。就是說變數「$^」會去掉重複的依賴檔案。

$+

類似「$^」,但是它保留了依賴檔案中重複出現的檔案。主要用在程式鏈結時,庫的交叉引用場合。

makefile自動化變數

makefile自動化變數 表示規則中的目標檔案集。在模式規則中,如果有多個目標,那麼,就是匹配於目標中模式定義的集合。僅當目標是函式庫檔案中,表示規則中的目標成員名。例如,如果乙個目標是 foo.a bar.o 那麼,就是 bar.o 就是 foo.a 如果目標不是函式庫檔案 unix下是 a w...

Makefile自動化變數

在上述的模式規則中,目標和依賴檔案都是一系例的檔案,那麼我們如何書寫乙個命令來完成從不同的依賴檔案生成相應的目標?因為在每一次的對模式規則的解析時,都會是不同的目標和依賴檔案。自動化變數就是完成這個功能的。在前面,我們已經對自動化變數有所提涉,相信你看到這裡已對它有乙個感性認識了。所謂自動化變數,就...

Makefile 自動化變數

自動化變數及其說明 表示規則中的目標檔案集。在模式規則中,如果有多個目標,那麼,就是匹配於目標中模式定義的集合。僅當目標是庫函式檔案中,表示規則中的目標成員名。例如,如果乙個目標是 foo.a bar.o 那麼,就是 bar.o 就是 foo.a 如果目標不是函式庫檔案 unix下是 a windo...