3

Visual Studio C++ lib 项目 Project 设置为使用预编译头文件 stdafx.cpp 设置为创建预编译头文件

我有一个头文件 MyClass.h 如果我构建,然后对应该无法编译的 MyClass.h 进行更改,编译仍然成功。如果我进行重建,或者如果我对包含“MyClass.h”的 cpp 文件进行更改,则编译将按预期失败。

这是预期的,因为我使用的是预编译的头文件吗?有什么方法可以修复它,以便 2nds buid 在不关闭预编译头文件的情况下获取头文件更改?

4

4 回答 4

3

确保解决方案资源管理器中的项目引用了您正在更改的头文件。如果是这种情况,则应在更改完整构建时触发它。

于 2010-11-02T14:26:40.753 回答
2

在项目属性中,将“启用最小重建”设置为否

于 2010-11-02T23:17:09.543 回答
0

您确定 stdafx.cpp 包含有问题的标头吗?

于 2010-11-02T14:31:43.520 回答
0

VisualStudio 经常会因为更改而变得非常愚蠢。它可以去任何一种方式,但通常它会去你遇到的方式。

我已经让它捕捉到一个文件使用的标头的变化,但不是它在其他文件中使用的事实。所以它编译一个而不是其他的。然后我得到非常奇怪的链接器错误。

当然,这仍然可能是你自己的错,但事实上,VS 是出了名的愚蠢。有时,完全重建会永久解决问题,直到下一次。其他时候,您以某种方式对项目文件进行了冲洗,并希望您可以恢复到原始文件(如源服务器还原)。“撤消”通常不会撤消这种 fubar。

我已经多次注意到这一点,不需要是预编译头文件中的头文件。它似乎有点随机,但一种更常见的相关性是标题中充满了模板。VS 只是普通的智障​​ wrt 模板。

于 2010-11-02T17:03:11.053 回答