Makefile七之字串處理函式

2021-08-08 20:39:09 字數 2590 閱讀 5637

函式概述

函式呼叫,很像變數的使用,也是以「$」來標識的,其語法如下:

$()或是

${}這裡,就是函式名,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。返回 函式返回被替換過後的字串。示例...