符號? | 說明? | 參考? |
---|---|---|
? ? ? $() 或 ${}? ? ? ? ? ?? 我們提供的服務有:網站設計制作、做網站、微信公眾號開發、網站優化、網站認證、營山ssl等。為上千余家企事業單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的營山網站制作公司 | 使用變量。如果要使用字符$,需寫為$$。 | SRC = main.c gcc? -c? $(SRC)? -o? main |
= | 一般變量賦值 | |
:=? | 變量只能使用前面已經定義的變量。 | SRC? =? main.c OBJ? :=? $(SRC) $(INC) test.c INC? ? =? test1.c #此時$(OBJ)的值為main.c test.c? ? ? ? ? ? ? ?? |
?= | 如果變量沒有被定義過,則賦值。否則跳過該語句。? ? ? ? ? ? ?? | ① SRC ?= main.c #此時$(SRC)的值為main.c ② SRC? ? =? test.c ?SRC? ?=? main.c #此時$(SRC)的值為test.c |
符號 說明 參考 $() 或
${} 使用變量。如果要使用字符$,需寫為$$。
SRC = main.c
gcc? -c? $(SRC)? -o? main
= 一般變量賦值 := 變量只能使用前面已經定義的變量。
SRC? =? main.c
OBJ? :=? $(SRC) $(INC) test.c
INC? ? =? test1.c
#此時$(OBJ)的值為main.c test.c
?= 如果變量沒有被定義過,則賦值。否則跳過該語句。
① SRC ?= main.c
#此時$(SRC)的值為main.c
② SRC? ? =? test.c
?SRC? ?=? main.c
#此時$(SRC)的值為test.c
表達 說明 參考 $(var:a=b)
將變量var中所有字符串 a 結尾的替換成字符串 b。
這里結尾的標志是 空格 或者 結束符
SRC = test1.c? test2.c? test3.c
OBJ = $(SRC:.c=.o)
#此時$(OBJ)值為 test1.o? test2.o? test3.o
x = y
y = z
a := $($(x))
將變量的值當作變量
x = $(y)
y = z
z = Hello
a := $($(x))
#此時 $(a) 值為 Hello,一層一層解開即可
符號 說明 參考 $@
1、規則中的目標文件集合。
2、在模式規則中,如果有多個目標,$@為目標中模式定義的集合
target : obj
@echo $@ #輸出target
gcc -o target obj
$? 所有比目標新的依賴目標的集合。
#obj1.c被修改
target : obj1 obj2 obj2 obj3
@echo $? #輸出obj1
@echo $^ #輸出obj1 obj2 obj3
@echo $+ #輸出obj1 obj2 obj2 obj3
gcc -o target obj1 obj2 obj3
$^ 所有依賴目標的集合。會自動去除重復的依賴目標。 $+ 所有依賴目標的集合。不會去除重復的依賴目標。
$<
1、規則的第一個依賴文件名。
2、如果是一個目標文件使用隱含規則來重建,則它代表由隱含規則加入的第一個依賴文件。
$%
1、當規則的目標文件是一個靜態庫文件時,代表靜態庫的一個成員名。
2、如果目標不是靜態庫文件,其值為空。
$ * 在模式規則和靜態模式規則中,代表“莖”。莖”是目標模式中“%”所代表的
部分。 ?
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
本文標題:Makefile---變量-創新互聯
網頁鏈接:http://vcdvsql.cn/article16/didhdg.html
成都網站建設公司_創新互聯,為您提供網頁設計公司、手機網站建設、網站收錄、企業網站制作、微信小程序、面包屑導航
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯