函式概述
函式呼叫,很像變數的使用,也是以「$」來標識的,其語法如下:
$()或是
${}這裡,就是函式名,make 支援的函式不多。是函式的引數,引數間
以逗號「,」分隔,而函式名和引數之間以「空格」分隔。函式呼叫以「$」開頭,以圓括號
或花括號把函式名和引數括起。1、
subst
$(subst ,,)
名稱:字串替換函式——subst。
功能:把字串中的字串替換成。
返回:函式返回被替換過後的字串。2、
patsubst
$(patsubst ,,)
名稱:模式字串替換函式——patsubst。
功能:查詢中的單詞(單詞以「空格」、「tab」或「回車」「換行」分隔)是否符
合模式,如果匹配的話,則以替換。這裡,可以包括通
配符「%」, 表示任意長度的字串。 如果中也包含「%」, 那麼,
中的這個「%」將是中的那個「%」所代表的字串。(可以用「\」來轉義, 以「\%」
來表示真實含義的「%」字元)
返回:函式返回被替換過後的字串。
示例:$(patsubst %.c,%.o,x.c.c bar.c)
把字串「x.c.c bar.c」符合模式[%.c]的單詞替換成[%.o],返回結果是「x.c.o bar.o」 3
、 strip
$(strip )
名稱:去空格函式——strip。
功能:去掉字串中開頭和結尾的空字元。
返回:返回被去掉空格的字串值。4、
findstring
$(findstring ,)
名稱:查詢字串函式——findstring。
功能:在字串中查詢字串。
返回:如果找到,那麼返回,否則返回空字串。
示例:$(findstring a,a b c)
$(findstring a,b c)
第乙個函式返回「a」字串,第二個返回「」字串(空字串)5、
filter
$(filter ,)
名稱:過濾函式——filter。
功能:以模式過濾字串中的單詞,保留符合模式的單詞。可以
有多個模式。
返回:返回符合模式的字串。
示例:sources := foo.c bar.c baz.s ugh.h
foo: $(sources)
cc $(filter %.c %.s,$(sources)) -o foo
$(filter %.c %.s,$(sources))返回的值是「foo.c bar.c baz.s」。6、
filter-out
$(filter-out ,)
名稱:反過濾函式——filter-out。
功能:以模式過濾字串中的單詞,去除符合模式的單詞。可以
有多個模式。
返回:返回不符合模式的字串。
示例:objects=main1.o foo.o main2.o bar.o
mains=main1.o main2.o
$(filter-out $(mains),$(objects)) 返回值是「foo.o bar.o」。 7
、 sort
$(sort )
名稱:排序函式——sort。
功能:給字串中的單詞排序(公升序)。
返回:返回排序後的字串。
示例:$(sort foo bar lose)返回「bar foo lose」 。
備註:sort 函式會去掉中相同的單詞。8、
word
$(word ,)
名稱:取單詞函式——word。
功能:取字串中第個單詞。(從一開始)
返回:返回字串中第個單詞。如果比中的單詞數要大,那麼返
回空字串。
示例:$(word 2, foo bar baz)返回值是「bar」。9、
wordlist
$(wordlist ,,)
名稱:取單詞串函式——wordlist。
功能:從字串中取從開始到的單詞串。和是乙個數字。
返回:返回字串中從到的單詞字串。如果比中的單詞數要大,那
麼返回空字串。如果大於的單詞數,那麼返回從開始,到結束的單詞
串。示例: $(wordlist 2, 3, foo bar baz)返回值是「bar baz」。
10、
words
$(words )
名稱:單詞個數統計函式——words。
功能:統計中字串中的單詞個數。
返回:返回中的單詞數。
示例:$(words, foo bar baz)返回值是「3」。
備註:如果我們要取中最後的乙個單詞,我們可以這樣:$(word $(words ),)。
11、
firstword
$(firstword )
名稱:首單詞函式——firstword。
功能:取字串中的第乙個單詞。
返回:返回字串的第乙個單詞。
示例:$(firstword foo bar)返回值是「foo」。
備註:這個函式可以用 word 函式來實現:$(word 1,)。
makefile字串處理函式
makefile常見的字串處理函式如下 1.subst from 把text中字串from替換為to,返回替換之後的值 subst oo,ee,good food book geed feed beek 2.patsubst 查詢中的單詞 單詞以 空格 tab 或 回車 換行 分隔 是否符合模式,如...
Makefile之字串函式
1.subst字串替換函式 subst 名稱 字串替換函式 subst。功能 把字串中的字串替換成。返回 函式返回被替換過後的字串。例子 comma empty space empty empty string a b c d bar subst space comma string all ech...
makefile 中字串處理 函式
一 函式的呼叫語法 函式呼叫,很像變數的使用,也是以 來標識的,其語法如下 或是 這裡,就是函式名。是函式的引數,引數間以逗號 分隔,而函式名和引數之間以 空格 分隔。二 字串處理函式 subst 名稱 字串替換函式 subst。功能 把字串中的字串替換成new。返回 函式返回被替換過後的字串。示例...