我用来在Makefile中使用通配符,以便选择名称中以 .c 后缀结尾的所有文件。这看起来像SRCS := $(wildcard *.c)
。在Makefile的其他部分使用SRCS
。
我现在需要做的是防止给定文件包含在SRCS变量中。我发现的方法是将shell指令与一些控制台命令结合起来:SRC :=$(shell find . -name "*.c" | grep -v "file_to_exclude.c" | xargs)
这很好用,但我想知道是否还有一些比仅使用通配符更优雅的方式。
答案 0 :(得分:6)
您可以使用 $(过滤掉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))