如何使用GNU将过滤器输出从目录中列表

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

本文关键字:列表 输出 何使用 GNU 过滤器      更新时间:2023-10-16

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

这似乎不起作用。

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

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

objects=main1.o foo.o main2.o bar.o
mains=main1.o main2.o
$(filter-out $(mains),$(objects))

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

您可能想要类似的东西:

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