Makefile---變量-創(chuàng)新互聯(lián)

變量定義
符號(hào)?
說明?
參考?

? ? ? $() 或 ${}? ? ? ? ? ??

我們提供的服務(wù)有:網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、營山ssl等。為上千余家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的營山網(wǎng)站制作公司
使用變量。如果要使用字符$,需寫為$$。SRC = main.c

gcc? -c? $(SRC)? -o? main

=一般變量賦值
:=?變量只能使用前面已經(jīng)定義的變量。

SRC? =? main.c

OBJ? :=? $(SRC) $(INC) test.c

INC? ? =? test1.c

#此時(shí)$(OBJ)的值為main.c test.c? ? ? ? ? ? ? ??

?=如果變量沒有被定義過,則賦值。否則跳過該語句。? ? ? ? ? ? ??

① SRC ?= main.c

#此時(shí)$(SRC)的值為main.c

② SRC? ? =? test.c

?SRC? ?=? main.c

#此時(shí)$(SRC)的值為test.c

? ?

變量定義

符號(hào) 說明 參考 $() 或

${} 使用變量。如果要使用字符$,需寫為$$。

SRC = main.c

gcc? -c? $(SRC)? -o? main

= 一般變量賦值 := 變量只能使用前面已經(jīng)定義的變量。

SRC? =? main.c

OBJ? :=? $(SRC) $(INC) test.c

INC? ? =? test1.c

#此時(shí)$(OBJ)的值為main.c test.c

?= 如果變量沒有被定義過,則賦值。否則跳過該語句。

① SRC ?= main.c

#此時(shí)$(SRC)的值為main.c

② SRC? ? =? test.c

?SRC? ?=? main.c

#此時(shí)$(SRC)的值為test.c

變量的高級(jí)用法

表達(dá) 說明 參考 $(var:a=b)

將變量var中所有字符串 a 結(jié)尾的替換成字符串 b。

這里結(jié)尾的標(biāo)志是 空格 或者 結(jié)束符

SRC = test1.c? test2.c? test3.c

OBJ = $(SRC:.c=.o)

#此時(shí)$(OBJ)值為 test1.o? test2.o? test3.o

x = y

y = z

a := $($(x))

將變量的值當(dāng)作變量

x = $(y)
y = z
z = Hello
a := $($(x))

#此時(shí) $(a) 值為 Hello,一層一層解開即可

Makefile自動(dòng)化變量

符號(hào) 說明 參考 $@

1、規(guī)則中的目標(biāo)文件集合。

2、在模式規(guī)則中,如果有多個(gè)目標(biāo),$@為目標(biāo)中模式定義的集合

target : obj

@echo $@ #輸出target

gcc -o target obj

$? 所有比目標(biāo)新的依賴目標(biāo)的集合。

#obj1.c被修改

target : obj1 obj2 obj2 obj3

@echo $? #輸出obj1

@echo $^ #輸出obj1 obj2 obj3

@echo $+ #輸出obj1 obj2 obj2 obj3

gcc -o target obj1 obj2 obj3

$^ 所有依賴目標(biāo)的集合。會(huì)自動(dòng)去除重復(fù)的依賴目標(biāo)。 $+ 所有依賴目標(biāo)的集合。不會(huì)去除重復(fù)的依賴目標(biāo)。

$<

1、規(guī)則的第一個(gè)依賴文件名。

2、如果是一個(gè)目標(biāo)文件使用隱含規(guī)則來重建,則它代表由隱含規(guī)則加入的第一個(gè)依賴文件。

$%

1、當(dāng)規(guī)則的目標(biāo)文件是一個(gè)靜態(tài)庫文件時(shí),代表靜態(tài)庫的一個(gè)成員名。

2、如果目標(biāo)不是靜態(tài)庫文件,其值為空。

$ * 在模式規(guī)則和靜態(tài)模式規(guī)則中,代表“莖”。莖”是目標(biāo)模式中“%”所代表的
部分。 ?

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

本文標(biāo)題:Makefile---變量-創(chuàng)新互聯(lián)
網(wǎng)頁鏈接:http://bm7419.com/article16/didhdg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計(jì)公司手機(jī)網(wǎng)站建設(shè)、網(wǎng)站收錄、企業(yè)網(wǎng)站制作、微信小程序面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)