1

我在 Makefile 中使用通配符来选择所有以.c后缀结尾的文件。看起来像那样SRCS := $(wildcard *.c)。在 MakefileSRCS的其他部分使用。

我现在需要做的是防止给定文件包含在 SRCS 变量中。我发现的方法是将 shell 指令与一些控制台命令结合起来:SRC :=$(shell find . -name "*.c" | grep -v "file_to_exclude.c" | xargs)

这很好用,但我想知道是否还有其他比只使用通配符更优雅的方法。

4

1 回答 1

7

您可以使用$(filter-out P,T)命令...

SRCS := $(filter-out icky-file.c,$(wildcard *.c))

当然,使用 shell 脚本几乎可以将事情提升到另一个层次,因为这样您就不会受到 Make 的命令的限制。

有一堆不想要的东西吗?

NOWANTS := one.c two.c three.c
SRCS := $(filter-out $(NOWANTS),$(wildcard *.c))
于 2012-07-02T10:41:38.497 回答