C ++预编译标头已禁用

时间:2015-11-21 22:36:19

标签: c++ visual-studio compiler-errors precompiled-headers

在Visual Studio 2015中,我有一个C ++ / CLI项目,出现以下错误:

  

“致命错误C1010:在查找预编译头文件时意外结束文件。您是否忘记将”#include“stdafx.h”'添加到您的来源?“

我关闭了项目选项中的预编译头文件,但它一直给我同样的错误。我甚至删除了预编译头文件的名称,但它仍然显示"stdafx.h"

编辑: 是的,每个源文件都没有单独启用。

5 个答案:

答案 0 :(得分:4)

确定。 Hans Passant发现了正在发生的事情:

我用来构建它的构建配置仍然启用了预编译头。

答案 1 :(得分:2)

您可能已为项目禁用了它,但每个单独的源文件都可以拥有自己的特定编译器设置。您也可以禁用特定源文件的预编译头文件,错误地将该操作误认为是项目范围的设置。

对于解决方案资源管理器中的每个单独的C / C ++文件,右键单击它并选择“属性”。在C/C++ -> Precompiled Headers下,确保Precompiled Header设置为“未使用预编译标题”。

右键单击解决方案资源管理器中的项目名称,然后选择“属性”。仔细检查项目设置是否相同。

如果有stdafx.cpp文件,它可能具有“Create Precompiled Header”设置。如果文件中没有任何相关代码,通常可以删除该文件。

对每个解决方案配置重复所有相同的步骤(例如,Debug和Release)。

答案 2 :(得分:0)

Microsoft Visual Studio 2015:

右键点击解决方案 - >配置属性 - > C / C ++ - >预编译标题 - > 预编译标题 => 未使用预编译标题

enter image description here

答案 3 :(得分:0)

我遇到了同样的问题(关闭了项目属性中的预编译功能,但错误仍然存​​在)。

解决方案: 使用任何文本编辑器打开.proj文件,然后搜索

<PrecompiledHeader>Use</PrecompiledHeader>

您将看到仍然设置了一些属性来使用它。只需用“ NotUsing”替换“ Use”一词即可解决问题。

答案 4 :(得分:0)

就我而言,我发现pch.h仍设置在:c ++->高级->强制包含文件中。

无论如何,安德鲁的解决方案仍然是最好的。只需打开项目。在文本编辑器中找到文件,然后按ctrl -f搜索导致问题的文件名。相比浏览vs中的所有属性要容易得多