makefile 自動化變數

2022-03-08 03:24:41 字數 708 閱讀 4095

自動化變數及其說明:

$@  表示規則中的目標檔案集。在模式規則中,如果有多個目標,那麼,"$@"就是匹配於目標中模式定義的集合。

$%  僅當目標是函式庫檔案中,表示規則中的目標成員名。例如,如果乙個目標是"foo.a(bar.o)",那麼,"$%"就是"bar.o","$@"就是"foo.a"。如果目標不是函式庫檔案(unix下是[.a],windows下是[.lib]),那麼,其值為空。

$<   依賴目標中的第乙個目標名字。如果依賴目標是以模式(即"%")定義的,那麼"$<"將是符合模式的一系列的檔案集。注意,其是乙個乙個取出來的。

$?   所有比目標新的依賴目標的集合。以空格分隔。

$^   所有的依賴目標的集合。以空格分隔。如果在依賴目標中有多個重複的,那個這個變數會去除重複的依賴目標,只保留乙份。

四個變數($@、$<、$%、$*)在擴充套件時只會有乙個檔案,而另三個的值是乙個檔案列表

$@  target

$% file name of an archive member

$< first prerequisite

$? prerequisites newer than target

$^ prerequisites

$+ similar to $^, including duplicates

$* stem of the target filename

makefile自動化變數

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

makefile 自動化變數

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

Makefile自動化變數

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