如何在Makefile中过滤掉多个条件的文件?

Joh*_*ock 5 makefile gnu-make

让我们说你过滤这样的cpp文件

$(wildcard **/*.cpp)
Run Code Online (Sandbox Code Playgroud)

但是您不希望文件包含该单词,foo并且您不希望该文件具有确切的名称bar.cpp

如何使用filter-out多个标准?

Joh*_*ock 7

这似乎有效.也是递归的.

$(filter-out $(wildcard **/bar.cpp) $(wildcard **/*foo*), $(wildcard **/*.cpp))
Run Code Online (Sandbox Code Playgroud)

请注意下面的Etan更简单的建议.离开我的只是为了完整.

  • 对于`bar.cpp`你不需要'$(通配符)`只需`%/ bar.cpp`就可以了. (3认同)
  • 是的,即使是子目录.`%`匹配任何东西.试试看吧. (2认同)