【问题标题】:Ignore clean command in Makefile忽略 Makefile 中的 clean 命令
【发布时间】:2019-04-03 08:58:42
【问题描述】:

我有一个项目要编译很多 makefile,包括一个 clean 命令。这就是为什么如果出现错误我总是必须重新开始(因为在许多 Makefile 中调用了 clean 命令)

问题:

有没有可能告诉 make 忽略 clean 命令?否则我将不得不触摸 > 100 个 Makefile。我想从最后一个错误开始,而不是再次编译所有完成的东西

Makefile 条目示例:

clean: cleansubdirs $(DIR) $(DIR1)
   $(DIR2)

【问题讨论】:

  • 我觉得这很奇怪。 make 不会正常调用 clean。需要手动调用。您确定在失败时调用清理吗?
  • 如果我再次开始 make,则会调用清理,因为它是在 makefile 中设置的
  • 使用“make clean”开始每个构建显然是错误的,必须尽快修复。像这样写 100 多个文件是善恶之分。使用 shell/sed 批量编辑,从一开始就仔细阅读几本关于 make 的书。这是你能得到的唯一好建议。
  • 如果你给我们看一个典型的makefile,也许我们可以告诉你如何修改它。
  • 向我们展示如何达到clean 目标而不是它的作用。

标签: makefile gnu-make


【解决方案1】:

可以像这样简单地重新定义显式目标的配方:

noclean.mk

clean:;
cleansubdirs:;
# more stuff...

现在运行make -f Makefile -f noclean.mk,它可以在没有实际清理文件的情况下工作。但是,make 会发出几个关于“覆盖/忽略旧配方”的警告。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-04
    • 1970-01-01
    • 2015-04-14
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 2020-04-03
    • 2020-03-29
    相关资源
    最近更新 更多