##$@–表示所有的目標檔案。
%表示規則中的目標成員名。例如,如果乙個目標是」foo.a(bar.o)」,那麼,」
@」就是」foo.a」。如果目標不是函式庫檔案(unix下是[.a],windows下是[.lib]),其值為空。
<−−
依賴目標
中的第一
個目標名
字。如果
依賴目標
是以模式
(即" <」將是符合模式的一系列的檔案集。注意,其是乙個乙個取出來的。
$?–所有同目標相比更新的依賴目標的集合。以空格分隔。
$^–所有的依賴目標的集合。以空格分隔。如果在依賴目標中有多個重複的,那個這個變數會去除重複的依賴目標,只保留乙份。+−
−同^ , 區別是 如果目標檔案中有重複的,$+ 不會排重。∗−
−這個變
量表示目
標模式中
" 「的值就是」dir /a.foo」。這個變數對於構造有關聯的檔名是比較有效。如果目標中沒有模式的定義,那麼」∗"
也就不能
被推導出
,但是,
如果目標
檔案的後
綴是ma
ke所識
別的,那
麼"「就是除了字尾的那一部分。例如:如果目標是」foo.c」,因為」.c」是make所能識別的字尾名,所以,」∗"
的值就是
"foo
"。這個
特性是g
numa
ke的,
很有可能
不相容於
其它版本
的mak
e,所以
,我們應
該盡量避
免使用"
「,除非是在隱含規則或是靜態模式 中。如果目標中的字尾是make所不能識別的,那麼」$「就是空值。
上面七個自動化變數可以加上d(directory)或f(filename)來分別表示路徑和檔名部分。例如,(@
f)表示
" @」的檔案部分,如 果」@"
值是"d
ir/f
oo.o
",那麼
" (@f)」就是」foo.o」,」(@
f)"相
當於函式
" (notdir @)
";(@d)表示」@"
的目錄部
分(不以
斜槓做為
結尾),
如果" @」值是」dir/foo.o」,那麼」(@
d)"就
是"di
r",而
如果" @」中沒有包含斜槓的話,其值就是」.」(當前目錄)。
Makefile中的變數
makefile中的變數 2010年03月25日 b makefile b b 中的變數 b b b b b b 在makefile中,變數就是乙個名字 像是c語言中的巨集 代表乙個文字字串 變數的值 在makefile的目標 依賴 命令中引用乙個變數的地方,變數會被它的值所取代 與c語言中巨集引用...
makefile中使用變數
makefile裡的變數就像乙個變數,變數的作用主要如下 1 儲存檔名列表。2 儲存編譯器的引數。makefile中的變數是用乙個字串在makefile中定義的,這個文字串就是變數的值。只要在一行的開始寫下這個變數的名字,後面跟乙個 然後跟要設定的這個變數的 值即可定義變數,下面是定義變數的語法 變...
makefile中使用變數
makefile裡的變數就像乙個變數,變數的作用主要如下 1 儲存檔名列表。2 儲存編譯器的引數。makefile中的變數是用乙個字串在makefile中定義的,這個文字串就是變數的值。只要在一行的開始寫下這個變數的名字,後面跟乙個 然後跟要設定的這個變數的 值即可定義變數,下面是定義變數的語法 變...