Makefile中變數的使用

2021-07-25 22:40:54 字數 1298 閱讀 7817

##$@–表示所有的目標檔案。

%表示規則中的目標成員名。例如,如果乙個目標是」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中定義的,這個文字串就是變數的值。只要在一行的開始寫下這個變數的名字,後面跟乙個 然後跟要設定的這個變數的 值即可定義變數,下面是定義變數的語法 變...