Makefile中變量的使用

##$@–表示所有的目標文件。

%表示規則中的目標成員名。例如,如果一個目標是”foo.a(bar.o)”,那麼,” @”就是”foo.a”。如果目標不是函數庫文件(Unix下是[.a],Windows下是[.lib]),其值爲空。

<" <”將是符合模式的一系列的文件集。注意,其是一個一個取出來的。

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

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

+ ^ , 區別是 如果目標文件中有重複的,$+ 不會排重。

"“的值就是”dir /a.foo”。這個變量對於構造有關聯的文件名是比較有效。如果目標中沒有模式的定義,那麼”"make"“就是除了後綴的那一部分。例如:如果目標是”foo.c”,因爲”.c”是make所能識別的後綴名,所以,”""foo"GNUmakemake使"“,除非是在隱含規則或是靜態模式 中。如果目標中的後綴是make所不能識別的,那麼”$“就是空值。

上面七個自動化變量可以加上D(Directory)或F(FileName)來分別表示路徑和文件名部分。例如,(@F)" @”的文件部分,如 果”@""dir/foo.o"" (@F)”就是”foo.o”,”(@F)"" (notdir @)" (@D)表示”@"" @”值是”dir/foo.o”,那麼”(@D)""dir"" @”中沒有包含斜槓的話,其值就是”.”(當前目錄)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章