如何在Makefile字符串中搜索整个单词?

如何在Makefile字符串中搜索整个单词?,makefile,Makefile,我需要一个方法来搜索一个子串,如果它是一个完整的字 理想情况下,我需要一个函数(比如findwstring()),这样两个示例, $(FindString a,AB c) $(FindString a,角度b c) 应分别生成值“a”和“”(空字符串) 我找不到任何能帮助我的东西 $(filter a, a b c) 产生'a' $(filter a, angle b c) 产生'' 搜索字符串中的百分比(%)被视为通配符 从您链接的文档(实际上是右下方的函数findstring),黑体我的

我需要一个方法来搜索一个子串,如果它是一个完整的字

理想情况下,我需要一个函数(比如
findwstring()
),这样两个示例,
$(FindString a,AB c)

$(FindString a,角度b c)

应分别生成值“a”和“”(空字符串)

我找不到任何能帮助我的东西

$(filter a, a b c)
产生
'a'

$(filter a, angle b c)
产生
''

搜索字符串中的百分比(
%
)被视为通配符

从您链接的文档(实际上是右下方的函数
findstring
),黑体我的:

返回文本中与任何模式词匹配的所有空格分隔词,删除任何不匹配的词。这些模式是使用“%”编写的,就像上面的
patsubst
函数中使用的模式一样

filter
函数可用于分离变量中不同类型的字符串(如文件名)。例如:

sources := foo.c bar.c baz.s ugh.h
foo: $(sources)
        cc $(filter %.c %.s,$(sources)) -o foo
表示
foo
依赖于
foo.c
bar.c
baz.s
ugh.h
,但只有
foo.c
bar.c
baz.s
应该在编译器的命令中指定

sources := foo.c bar.c baz.s ugh.h
foo: $(sources)
        cc $(filter %.c %.s,$(sources)) -o foo