Makefile 常用函数总结

本文详细介绍了Makefile中的字符串处理函数,包括 subst、patsubst、strip、findstring、filter、filter-out、sort、word、wordlist、words 和 firstword。此外,还讲解了用于循环的 foreach 函数,通过实例展示了如何在Makefile中运用这些函数进行字符串操作和循环控制。

目录

一、函数的调用语法

二、字符串处理函数

1. subst: 字符串替换函数

2. patsubst: 模式字符串替换函数

3. strip: 去空格函数

4. findstring: 查找字符串函数

5. filter: 过滤函数

6. filter-out: 反过滤

7. sort: 排序函数

8. word: 取单词函数

9. wordlist: 取单词串函数

10. words: 单词个数统计函数

11. firstword: 首单词函数

三、其他

1. foreach: 循环函数


一、函数的调用语法

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

$(<function> <arguments>)  或  ${<function> <arguments>}

这里 function 就是函数名,*arguments是函数的参数,参数间以逗号 `","` 分隔,而函数名和参数之间以 `"空格"` 分隔。

函数调用以“$”开头,以圆括号或花括号把函数名和参数括起,感觉很像一个变量。函数中的参数可以使用变量,为了风格的统一,函数和变量的括号最好一样,如使用 `"$(subst a,b,$(x))"` 这样的形式,而不是 "$(subst a,b,${x})" 的形式。因为统一会更清楚,也会减少一些不必要的麻烦。

二、字符串处理函数

1. subst: 字符串替换函数

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

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

返回值:函数返回被替换过后的字符串。

comma:= ,
empty:=
space:= $(empty) $(empty)
foo:= a b c
bar:= $(subst $(space),$(comma),$(foo))

在这个示例中,$(comma) 的值是一个逗号。$(space) 使用了 $(empty) 定义了一个空格,$(foo) 的值是 "a b c",$(bar) 的定义调用了函数 "subst",这是一个替换函数,这个函数有三个参数,第一个参数是被替换字串,第二个参数是替换字串,第三个参数是替换操作作用的字串。这个函数也就是把 $(foo) 中的空格替换成逗号,所以 $(bar) 的值是 "a,b,c"。

2. patsubst: 模式字符串替换函数

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

功能:查找 text 中的单词是否符合模式 pattern,如果匹配的话,则用 replacement 替换。

返回值:替换后的新字符串。

$(patsubst %.c,%.o,1.c 2.c 3.c)
=》 "1.o 2.o 3.o"

3. strip: 去空格函数

$(strip <string>)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值