添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

function:函数名
args: 函数参数。参数和函数名之间用空格或tab键隔开,多个参数之间用逗号隔开。

1、subst – 特定字符串替换

$(subst from,to,text)

在文本"text"中使用"to"替换每一处"from"
例子:

$(subst ee,EE, feet on the street)

2、patsubst – 类似正则表达式的替换

$(patsubst pattern,replacement,text)

寻找"text"中符合格式"pattern"的字,用"replacement"替换他们。"pattern"和"replacement"可以使用通配符(%)。

%通配符是Makfile内的;

*通配符是shell脚本里的。

$(patsubst %.c,%.o,x.c.c bar.c)

输出结果为:
在这里插入图片描述

3、strip – 去除多余空格

$(strip string)

去掉前导和结尾空格,并将中间的多个空格压缩为单个空格
例子:

$(strip a    b c)

输出:a b c

4、findstring – 字符串查找

$(findstring find,in)

在in字符串中寻找find字符串,找到的话返回find否则返回空
例子:

$(findstring a, a b c)
$(findstrinf a, b c)
a 和  " "

5、filter – 类似正则表达式的字符筛选操作

$(filter pattern..., text)

返回在"text"中用空格隔开且匹配格式"pattern…"的字,去除不符合格式"pattern…"的字。
例子:

$(filter %.c %.s, foo.c bar.c baz.s ugh.h)
foo.c bar.c baz.s

6、sort – 排序去重

$(sort  list)

将"list"中的字按字母顺序排序并去掉重复的字。输出由单个空格隔开的字的列表
例子:

$(sort foo bar lose)
"bar foo lose"
                    makefile函数调用的形式:$(function args)function:函数名args: 函数参数。参数和函数名之间用空格或tab键隔开,多个参数之间用逗号隔开。1、subst – 特定字符串替换$(subst from,to,text)在文本"text"中使用"to"替换每一处"from"例子:$(subst ee,EE, feet on the street)...
当使用FME Workbench支持的字符串操作函数时,使用以下准则在字符串输入参数避免逗号(,)和双引号(“):
如果字符串输入参数包含逗号,则将整个字符串括在双引号。例如:@FindString(@Value(_src),"2,3")
如果一个字符串参数输入开始和/或结束在双引号,包围在双引号字符串,并通过前加反斜杠来避免任何其他双引号 (\")。例如:@FindString(@Value(_src),""He said, \"Wow!\""")。如果字符串输入参数不以双引号
函数名称:查找字符串函数—findstring。 
函数功能:搜索字串“IN”,查找“FIND”字串。 
返回值:如果在“IN”之存在“FIND” ,则返回“FIND”,否则返回空。 
函数说明:字串“IN”之可以包含空格、[Tab]。搜索需要是严格的文本匹配。 
$(findstring a,a b c) 
$(finds
Makefile 提供了大量的函数,这些函数都是make本身实现的,函数调用的格式如下:
$(function argument1, argument2, argument3)
这里function是函数名, argument是该函数的参数。参数和函数名之间是用空格或 Tab 隔开,如果有多个参数,它们之间用逗号隔开。这些空格和逗号不是参数值的一部分。
二、wildcard函数
函数wildcard语法如下
$(wildcard pat
   find 为被包含的字符串
 举例:现有一个字符串abcdefgabcdefg,我要查找与字符串abc匹配的次数。
int findstring ( char strp[], char find[] )//字符串查找
     int n =0;
     int len_f
其,`find`为要查找的字符或字符串,`in`为要在其查找的字符串。如果`in`包含`find`,则返回`find`,否则返回空字符串。
举个例子,假设我们要判断变量`VAR`是否包含字符`a`,可以写出如下代码:
ifeq ($(findstring a, $(VAR)), a)
    @echo VAR contains a
    @echo VAR does not contain a
endif
其,`ifeq`表示判断两个值是否相等,如果相等则执行第一个代码块,否则执行第二个代码块。在第一个代码块,我们使用`findstring`函数来查找字符`a`,如果返回的结果等于`a`,说明`VAR`包含字符`a`,则输出`VAR contains a`;否则输出`VAR does not contain a`。