我在Windows 7上使用Eclipse(Juno)+ CDT来驱动GCC,并自动生成makefile。在我使用GCC的__DATE__
和__TIME__
预处理器宏在我的项目配置头文件中添加构建日期/时间戳之前,我一直很努力。
在干净的构建中,这些宏工作得很好 - 但在增量构建中,Make不会重建关联的目标文件;它只是直接跳到链接。
我尝试将Windows等效于touch
作为预构建步骤(此处描述:https://stackoverflow.com/questions/51435/windows-version-of-the-unix-touch-command),但Make仍会跳过该文件。还尝试“触摸”包含标题的源文件;仍然没有骰子。
如何让Make始终重建任何依赖于特定标头的文件,即使在增量构建中也是如此?
答案 0 :(得分:2)
将标题标记为.PHONY
。这将确保始终被认为不是最新的:
.PHONY: particular_header.h
答案 1 :(得分:1)
原来我需要删除目标文件作为预构建步骤,如下所述:
Force Eclipse CDT makefile to clean file before compiling(这可能与该问题重复)