C++ 预编译 Header 已禁用
C++ Precompiled Header Disabled
在 Visual Studio 2015 年,我有一个 C++/CLI 项目出现以下错误:
"fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source?"
我在项目选项中关闭了预编译 headers 但它一直给我同样的错误。我什至删除了预编译的 header 文件的名称,但它仍然显示 "stdafx.h"
.
编辑:
是的,每个源文件都没有单独启用它。
您可能已为项目禁用它,但每个单独的源文件都可以有自己特定的编译器设置。也有可能您为特定源文件禁用了 pre-compiled headers,错误地将该操作误认为是项目范围的设置。
对于解决方案资源管理器中的每个 C/C++ 文件,右键单击它并 select "Properties"。在 C/C++ -> Precompiled Headers
下,确保 Precompiled Header
设置为 "Not using Precompiled Headers"。
在解决方案资源管理器中右键单击您的项目名称,select "Properties as well" Double-check 项目设置相同。
如果有 stdafx.cpp 文件,它可能具有 "Create Precompiled Header" 设置。如果其中没有任何相关代码,您通常可以删除此文件。
对每个解决方案配置重复所有相同的步骤(例如调试和发布)。
好的。 Hans Passant 发现了发生的事情:
我用来构建它的构建配置仍然启用了预编译头文件。
微软 Visual Studio 2015:
右键单击解决方案 -> 配置属性 -> C/C++ -> 预编译 Headers -> 预编译 Header = > 不使用预编译 Headers
我遇到了同样的问题(在项目属性中关闭了预编译但错误仍然存在)。
解决方法:
使用任何文本编辑器打开 .proj 文件并搜索
<PrecompiledHeader>Use</PrecompiledHeader>
您会看到仍有一些属性设置可以使用它。只需将单词 "Use" 替换为 "NotUsing" 即可解决问题。
在我的例子中,我发现 pch.h 仍然设置在:c++ -> 高级 -> 强制包含文件。
无论如何,安德鲁的解决方案仍然是最好的。只需打开项目。在文本编辑器中打开文件,然后按 ctrl-f 搜索导致问题的文件名。比浏览 vs.
中的所有属性要容易得多
在 Visual Studio 2015 年,我有一个 C++/CLI 项目出现以下错误:
"fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source?"
我在项目选项中关闭了预编译 headers 但它一直给我同样的错误。我什至删除了预编译的 header 文件的名称,但它仍然显示 "stdafx.h"
.
编辑: 是的,每个源文件都没有单独启用它。
您可能已为项目禁用它,但每个单独的源文件都可以有自己特定的编译器设置。也有可能您为特定源文件禁用了 pre-compiled headers,错误地将该操作误认为是项目范围的设置。
对于解决方案资源管理器中的每个 C/C++ 文件,右键单击它并 select "Properties"。在 C/C++ -> Precompiled Headers
下,确保 Precompiled Header
设置为 "Not using Precompiled Headers"。
在解决方案资源管理器中右键单击您的项目名称,select "Properties as well" Double-check 项目设置相同。
如果有 stdafx.cpp 文件,它可能具有 "Create Precompiled Header" 设置。如果其中没有任何相关代码,您通常可以删除此文件。
对每个解决方案配置重复所有相同的步骤(例如调试和发布)。
好的。 Hans Passant 发现了发生的事情:
我用来构建它的构建配置仍然启用了预编译头文件。
微软 Visual Studio 2015:
右键单击解决方案 -> 配置属性 -> C/C++ -> 预编译 Headers -> 预编译 Header = > 不使用预编译 Headers
我遇到了同样的问题(在项目属性中关闭了预编译但错误仍然存在)。
解决方法: 使用任何文本编辑器打开 .proj 文件并搜索
<PrecompiledHeader>Use</PrecompiledHeader>
您会看到仍有一些属性设置可以使用它。只需将单词 "Use" 替换为 "NotUsing" 即可解决问题。
在我的例子中,我发现 pch.h 仍然设置在:c++ -> 高级 -> 强制包含文件。
无论如何,安德鲁的解决方案仍然是最好的。只需打开项目。在文本编辑器中打开文件,然后按 ctrl-f 搜索导致问题的文件名。比浏览 vs.
中的所有属性要容易得多