Makefile中常用的函数
Makefile中常用的函数 Makefile中常用的函数是指在Makefile中使用函数来处理变量,从而让我们的命令或是规则更为灵活和具有智能。Make所支持的函数并不多,但是已经足够我们的操作了。函数调用后,函数的返回值可以当做变量来使用。 一、函数的调用语法 函数的调用语法与变量的使用类似,以“$”开头,以圆括号或花括号把函数名和参数括起。函数中的参数可以使用变量,为了风格的统一,函数和变量的括号最好一样。 示例: comma := , empty := space := $(empty) foo := a b c bar := $(subst $(space),$(comma),$(foo)) 在这个示例中,$(comma)的值是一个逗号。$(space)使用了$(empty)定义了一个空格,$(foo)的值是“ab c”,$(bar)的定义用调用了函数“subst”,这是一个替换函数,这个函数有三个参数,第一个参数是被替换字串,第二个参数是替换字串,第三个参数是替换操作作用的字串。 二、字符串处理函数 Makefile中有多种字符串处理函数,以下是其中的一些: 1. $(subst ,,):字符串替换函数 功能:把字串中的字符串替换成。 返回:函数返回被替换过后的字符串。 示例:$(subst ee,EE,feet on the street),把“feet on the street”中的“ee”替换成“EE”,返回结果是“fEEt on the strEEt”。 2. $(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 a b c )把字串“a b c ”去到开头和结尾的空格,结果是“a b c”。 4. $(findstring ,):查找字符串函数 功能:在字串中查找字串。 返回:如果找到,那么返回,否则返回空字符串。 示例:$(findstring a,a b c)$(findstring a,b c)第一个函数返回“a”字符串,第二个返回“”字符串(空字符串)。 5. $(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 ,):反过滤函数 功能:以模式过滤字符串中的单词,去除符合模式的单词。 返回:返回不符合模式的字串。 示例:objects=main1.o foo.o main2.o bar.o mains=main1.o main2.o $(filter-out $(mains),$(objects)) 返回值是“foo.o bar.o”。 7. $(sort ):排序函数 功能:对字符串进行排序。 返回:返回排序后的字符串。 这些函数可以帮助我们更好地处理Makefile中的变量和字符串,使我们的Makefile更加灵活和智能。
剩余6页未读,继续阅读
- 粉丝: 20
- 资源: 19
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助