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

wor*_*bin 2 makefile

我需要一种仅在子字符串是整个单词时才搜索子字符串的方法。

\n\n

理想情况下,我想要一个函数(比如说findwstring()),这样两个例子,
\n $(findwstring a, a b c)
\n $(findwstring a, angle b c)
\n 应该生成值 \xe2\x80\x98a\xe2\x80\x99 和 \xe2\x80\x98\xe2\x80\x99 (空字符串)分别。

\n\n

我找不到任何东西我在这里可以帮助我的东西。

\n

Dev*_*lar 5

$(filter a, a b c)\n
Run Code Online (Sandbox Code Playgroud)\n\n

生产'a'.

\n\n
$(filter a, angle b c)\n
Run Code Online (Sandbox Code Playgroud)\n\n

生产''.

\n\n

百分 (% ) 被视为通配符。

\n\n

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

\n\n
\n
$(filter pattern\xe2\x80\xa6,text)\n
Run Code Online (Sandbox Code Playgroud)\n\n

返回文本中与任何模式单词匹配的所有以空格分隔的单词,删除任何匹配的单词。这些模式是使用 \xe2\x80\x98%\xe2\x80\x99 编写的,就像在patsubst这些模式是使用 \xe2\x80\x98%\xe2\x80\x99 编写的,就像上面函数

\n\n

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

\n\n
sources := foo.c bar.c baz.s ugh.h\nfoo: $(sources)\n        cc $(filter %.c %.s,$(sources)) -o foo\n
Run Code Online (Sandbox Code Playgroud)\n\n

说这foo取决于foo.c, bar.c,baz.sugh.h但仅foo.c,bar.cbaz.s应该在编译器的命令中指定。

\n
\n