makefile 自動化變數

2021-09-07 03:36:22 字數 634 閱讀 1792

print ***: *.c *.h

echo $?

echo $<

echo $^

echo

$@

touch print

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

$<規則的第乙個依賴檔名。如果是乙個目標檔案使用隱含規則來重建,則它代表由隱含規則加入的第乙個依賴檔案

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

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

如make *** 就會輸出***, make 則會輸出print

makefile自動化變數

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

makefile 自動化變數

代表規則中的目標檔名。如果目標是乙個文件 linux中,一般稱.a檔案為文件 那麼它代表這個文件的檔名。在多目標的模式規則中,它代表的是哪個觸發規則被執行的目標檔名。規則的目標檔案是乙個靜態庫檔案時,代表靜態庫的乙個成員名。例如,規則的目標是 foo.a bar.o 那麼,的值就為 bar.o 的值...

Makefile自動化變數

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