【问题标题】:GNU Make Incremental Build: Force rebuild of specific fileGNU Make Incremental Build:强制重建特定文件
【发布时间】:2013-08-23 21:53:18
【问题描述】:

我在 Windows 7 上使用 Eclipse (Juno) + CDT 来驱动 GCC,并自动生成生成文件。在我使用 GCC 的 __DATE____TIME__ 预处理器宏在我的项目配置头文件中添加构建日期/时间戳之前工作得很好。

在干净的构建中,这些宏运行良好 - 但在增量构建中,Make 不会重新构建关联的目标文件;它只是直接跳转到链接。

我尝试将 touch 的 Windows 等效项作为预构建步骤(此处描述:https://stackoverflow.com/questions/51435/windows-version-of-the-unix-touch-command),但 Make 仍然跳过该文件。还尝试“触摸”包含标题的源文件;还是没有骰子。

如何告诉 Make 始终重建依赖于特定标头的任何文件,即使是增量构建?

【问题讨论】:

  • 尝试使用--assume-new 命令行选项制作头文件和包含C 文件,但没有成功。

标签: eclipse makefile eclipse-cdt incremental-build


【解决方案1】:

将标题标记为.PHONY。这将确保它始终被认为不是最新的:

.PHONY: particular_header.h

【讨论】:

  • 谢谢 - 由于 Makefile 是自动生成的,有没有办法在 CDT 的 C 构建设置中进行配置?
【解决方案2】:

原来我需要删除目标文件作为预构建步骤,如下所述:

Force Eclipse CDT makefile to clean file before compiling(这可能是那个问题的重复)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-15
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-10
    • 2018-03-24
    相关资源
    最近更新 更多