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

时间:2019-07-02 08:24:50

标签: c++ makefile gnu-make

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

这似乎不起作用。

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))

所以我的问题几乎变成是否有一种方法可以通过从变量../src/file1.cpp中加载值来排除../src/file2.cpp../src/file3.cppSRCDIR

1 个答案:

答案 0 :(得分:1)

您可能想要类似的东西:

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