目录
根据《跟我一起学makefile》第五部分第七节的描述,filter使用方法为:
$(filter <模式>, <字符串的集合>)
返回值也是字符串的集合。输入变量的集合中凡是满足模式的字符串都进入返回值集合中。
问题
下面是该章节的示例:
这里有一个问题:代码的第二行,如果我不用$(filter...)过滤,直接使用$(files),运行效果是否一样呢?
看下面2个实验:
实验一:
不使用filter,依然匹配到了.o文件。只不过打印了一条警告。
实验二:
使用filter,仍然正确匹配,且没有警告。
结论
由于%.o:%.c这个匹配模式的作用,即使前面不用filter过滤,仍然可以正确匹配目标,只不过打印一条警告。