在Visual Studio 2015中,我有一个C ++ / CLI项目,出现以下错误:
“致命错误C1010:在查找预编译头文件时意外结束文件。您是否忘记将”#include“stdafx.h”'添加到您的来源?“
我关闭了项目选项中的预编译头文件,但它一直给我同样的错误。我甚至删除了预编译头文件的名称,但它仍然显示"stdafx.h"
。
编辑: 是的,每个源文件都没有单独启用。
答案 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 ++ - >预编译标题 - > 预编译标题 => 未使用预编译标题
答案 3 :(得分:0)
我遇到了同样的问题(关闭了项目属性中的预编译功能,但错误仍然存在)。
解决方案: 使用任何文本编辑器打开.proj文件,然后搜索
<PrecompiledHeader>Use</PrecompiledHeader>
您将看到仍然设置了一些属性来使用它。只需用“ NotUsing”替换“ Use”一词即可解决问题。
答案 4 :(得分:0)
就我而言,我发现pch.h仍设置在:c ++->高级->强制包含文件中。
无论如何,安德鲁的解决方案仍然是最好的。只需打开项目。在文本编辑器中找到文件,然后按ctrl -f搜索导致问题的文件名。相比浏览vs中的所有属性要容易得多