目录
一、函数的调用语法
函数调用,很像变量的使用,也是以“$”来标识的,其语法如下:
$(<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>)
功

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

1573

被折叠的 条评论
为什么被折叠?



