Makefile文件(七)_使用函数

参考http://blog.csdn.net/liang13664759/article/details/1771246/

一、函数的调用语法

函数调用,如变量的使用,也是以“$”来标识的,语法如下:

$(<function> <arguments>)

或者:

${<function> <arguments>}

这里,<function>是函数名,make支持的函数不多,<arguments>是函数的参数,参数间以逗号“,”分隔,而函数名和参数之间以“空格”分隔。函数调用以“$”开头,圆括号或者花括号把函数名和参数括在一起,感觉很像一个变量。函数中的参数可以使用变量,为了风格的统一,函数和变量的括号最好统一一样。

示例:

comma := ,

empty :=

spae := $(empty) $(empty)

foo := a b c

bar := $(subst $(space), $(comma), $(foo))

示例重,$(comma)的值是一个逗号。$(space)使用了$(empty)定义了一个空格,$(foo)的值是“a b c”,$(bar)的定义调用了“subst”替换函数,有三个参数,把$(foo)中的$(space)替换成$(comma),所以$(bar)的值是“a,b,c”

二、字符串处理函数

①、$(subst <from>,<to>,<text>)

名称:字符串替换函数==subst

功能:把字符串<text>中的<from>替换成<to>

返回:替换过后的字符串

示例:

$(subst ee,EE,feet on the street)=====》》》返回结果:fEEt on the srEEt

②、$(patsubst <pattern>,<replacement>,<text>)

名称:模式字符串替换函数---patsubst

功能:查找<text>中的单词是否符合模式<pattern>,如果匹配,则以<replacement>替换。<pattern>可以包含通配符“%”,表示任意长度的字串。如果<replacement>中也包含“%”,那么,<replacement>中的这个“%”是<pattern>中的“%”所代表的字串。

返回:替换后的字符串

示例:$(patsubst %.c,%.ox.c.c bar.c)===》》》把字串“x.c.c bar.c”符合模式[%.c]的单词替换成[%.o],返回结果是“x.c.o bar.o”

原文地址:https://www.cnblogs.com/weiyi-mgh/p/7040844.html