MSVC:pragma强制重建文件?

时间:2012-07-08 13:43:17

标签: visual-studio visual-c++ pragma rebuild

是否存在MSVC的pragma语句,导致编译器始终重建文件 - 如果它认为它刚刚构建了?

2 个答案:

答案 0 :(得分:3)

这是我用来实现这个目的的技巧:

1)添加类似

的post build步骤命令
echo #define __FORCE_REBUILD__ "Include this file in a cpp to invalidate it at each compilation" > $(ProjectDir)ForceRebuild.h

2)在每个要强制重建的cpp中添加一个'#include“ForceRebuild.h”'。

它仅在构建实际发生后才起作用(因为如果Visual Studio决定跳过构建项目,则跳过post构建)。

答案 1 :(得分:0)

我怀疑是否存在,而且我非常确定不会存在(除非工具链发生重大变化)。

原因很简单:当make(或等效)决定构建什么时,它不会查看所涉及的文件的内容 - - 它只是将目标文件的时间戳与源文件上的时间戳进行比较。如果目标文件比其源文件更新,则永远不会为该文件调用编译器,因此编译器永远不会看到该文件的内容(包括理论上的#pragma)。