如何使用 GNU Make 从目录中过滤掉文件列表?

How to use GNU Make filter-out a list of files from a directory?

我有一个要从我的 Makefile 中排除的 cpp 个文件的列表。我无法像 那样应用通配符;相反,我想排除特定文件名的列表。我怎么做?

这似乎不起作用。

SRCDIR = ../src

EXCLUDE := file1.cpp,file2.cpp,file3.cpp
SRCS    = $(shell find $(SRCDIR) -name '*.cpp')
SRCS := $(filter-out $(SRCDIR)/$(EXCLUDE) , $(SRCS))

查看documentation,可以过滤多个文件为:

objects=main1.o foo.o main2.o bar.o
mains=main1.o main2.o

$(filter-out $(mains),$(objects))

所以我的问题几乎变成了是否有办法通过从变量 SRCDIR?[=20 加载值来排除 ../src/file1.cpp../src/file2.cpp../src/file3.cpp =]

你可能想要这样的东西:

SRCS := $(filter-out $(EXCLUDE:%=$(SRCDIR)/%),$(SRCS))