基于 this stackoverflow 响应,我创建了一个将所有 .c 文件编译成单独的可执行文件的 Makefile。我添加了一个删除所有程序的 clean
部分。现在看起来像:
CFLAGS=-Wall -g
SRCS = $(wildcard *.c)
PROGS = $(patsubst %.c,%,$(SRCS))
all: $(PROGS)
clean:
rm -f $(PROGS)
%: %.c
$(CC) $(CFLAGS) -o $@ $<
我的问题是:
- 您如何让 Makefile 读取额外的命令行参数,以便它可以只清除指定的程序?
最佳答案
您可以添加一个 clean-%
目标,它只清理特定的二进制文件或其他此类游戏,但为什么呢?你的“干净”配方只是 rm
所以你自己运行 rm
就可以了。
至于仅构建特定的二进制文件,只需运行 make $binary
而不是 make
或 make all
。
make
/make all
所做的就是按名称为每个列出的二进制文件运行目标。
关于c - 改进 Makefile,使其仅创建和清理已更改/特别请求的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28468347/