【问题标题】:Improving Makefile so it only creates and cleans programs that have been changed/specifically requested改进 Makefile,使其仅创建和清理已更改/特别要求的程序
【发布时间】:2015-02-12 02:40:12
【问题描述】:

基于this stackoverflow 响应,我创建了一个 Makefile,它将所有 .c 文件编译成单独的可执行文件。我添加了一个删除所有程序的clean 部分。现在看起来像:

CFLAGS=-Wall -g

SRCS = $(wildcard *.c)

PROGS = $(patsubst %.c,%,$(SRCS))

all: $(PROGS)

clean:
    rm -f $(PROGS)

%: %.c
    $(CC) $(CFLAGS)  -o $@ $<

我的问题是:

  1. 如何让 Makefile 读取额外的命令行参数,以便只清理指定的程序?

【问题讨论】:

  • 您希望clean 只清理.c 文件比构建的二进制文件更新的程序吗? make &lt;prog&gt; 将只构建有问题的程序。
  • 更改了第一个问题的一部分,该问题询问您提到的内容。感谢您指出。仍然会感谢另一个问题的答案:)

标签: c makefile


【解决方案1】:

您可以添加一个clean-% 目标,它只清理特定的二进制文件或其他此类游戏,但为什么呢?你的“干净”配方只是rm,所以你自己运行rm

至于仅构建特定的二进制文件,只需运行 make $binary 而不是 makemake all

make/make all 所做的只是按名称运行每个列出的二进制文件的目标。

【讨论】:

  • 问题中的 .c 部分是之前遗留下来的。更改它以反映我对清理二进制文件的要求。谢谢:)
猜你喜欢
  • 2013-06-23
  • 2011-12-10
  • 1970-01-01
  • 2020-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-16
  • 1970-01-01
相关资源
最近更新 更多