我有一个相当大的 VS2010 C++ 解决方案。解决方案中只有一个项目,因此项目之间没有相互依赖关系。问题是,当我从 GIT 中提取更新时,VS2010 有时不够聪明,无法重建受更新的新文件影响的翻译单元。这会导致可执行文件不可避免地以某种虚假方式崩溃。
这对我来说很痛苦,因为我不能相信部分构建,并且每当我在 git 中跳来跳去时都不得不进行完全重建,这会降低生产力。
注意:我没有以任何方式责怪 git,我只是指出我的过程以防万一。另请注意:当我构建时,我右键单击项目并选择“构建”。
有谁知道“调试”这个编译器的方法,知道为什么它没有注意到它需要重建依赖于更改的其他文件?
编辑:经过进一步调查,我可以排除我使用 GIT 的问题。我可以通过编辑包含在许多地方的头文件来重现这一点,保存它然后运行不想构建任何新文件的“构建”。
编辑2:问题似乎与#defines 有关。我有一个仅包含在另一个标头中的标头...并且仅在#defines 指定的某些条件下才包含在该标头中。所以我们有#if COND1 #elif COND2 #else < 有问题的问题标题#endif 并且已经损坏。如果我将包含从其他情况中取出,它会触发依赖项以正确编译!