我对 Make 还很陌生。我当前的 Makefile 如下。它将所有 .c 文件编译成相应的可执行文件。 c 文件列表不断增长(我添加了越来越多的文件,p1.c、p2.c、p3.c,...)。所以我希望它编译其中的大部分,但是如果有一个特定的文件有错误,我不想打扰,我希望能够将其放在不-编译列表——也就是说,与其告诉 make 我想要编译什么,不如告诉它我不想编译什么会更快。很容易有一个文件 dont.txt,我可以在其中添加和删除行,每个行都包含“px.c”。如果我有这样的文件,我如何告诉 make 不编译这些 .c 文件?
CFLAGS = -g -pedantic -std=c99 -Wall
SRCS = $(wildcard *.c)
PROGS = $(patsubst %.c,%,$(SRCS))
all: $(PROGS)
%: %.c
$(CC) $(CFLAGS) -o $@ $<
谢谢
最佳答案
你可以过滤掉你不想编译的源文件
SRCS = $(filter-out excludefile.c, $(wildcard *.c))
此外,如果您维护要排除的文件名,请使用如下命令
例如文件是 exclude.txt
那么
EXCLUDES := $(shell cat ./exclude.txt)
SRCS = $(filter-out $(EXCLUDES), $(wildcard *.c))
关于c - 维护一个我不希望 Make 编译的程序列表,我可以使用 >> 和 SED 进行更改,而不是编辑 makefile?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22342948/