如何在不关闭预编译头文件的情况下修复 C1010 错误?

Posted

技术标签:

【中文标题】如何在不关闭预编译头文件的情况下修复 C1010 错误?【英文标题】:How to fix a C1010 error without turning off precompiled headers? 【发布时间】:2009-10-14 17:01:10 【问题描述】:

所以, 我必须在我的 VS 2005 项目中使用预编译的头文件。现在我有一个没有#include“stdafx.h”的共享源文件......如何在我的项目中包含共享源文件而不将stdafx.h添加到源文件的顶部并且不关闭预编译标题??

【问题讨论】:

【参考方案1】:

文件属性 -> C/C++ -> 预编译头文件 -> 创建/使用预编译头文件 -> 不使用 ...

【讨论】:

哦,快。我认为这很简单,我只是菜鸟。谢谢...我仍然熟悉 VS :) 这会关闭 PCH,这正是 OP 想要避免的……请改用 /FI。 此选项允许您关闭此文件的 pch - 这可能正是 op 想要的。你从哪里得到你对希望对源文件使用预编译头文件的操作的解释?【参考方案2】:

在 C/C++ - Precompiled Header 部分中查看该文件的属性(上下文菜单)。

将“创建/使用预编译头”改为“不使用预编译头”。

注意 - 我刚刚在 VC++2003 中检查了这一点 - 可能 选项已在 VC++2005 或 2008 中移动,但我对此表示怀疑。不过,即使它已经移动了,也应该不难找到。

【讨论】:

是的,我不确定这是否特定于 MFC ......我以前从未使用过预编译的头文件。谢谢! 这会关闭 PCH... 改用 /FI。 @Xavier - 它为 ONE SPECIFIC cpp 文件关闭 PCH。这很少有什么大不了的,而且可能是有益的。如果项目的每个标头都包含在单个 stdafx.h 标头中,而每个 cpp 文件都包含该标头(正如 VC++ 所鼓励的那样),则 any 更改为 any 标头会导致 整个项目中的每个 cpp 文件都需要重建。当然,这建议为不同的 cpp 文件显式选择不同的预编译头文件 - 但选项非常明显,与“不使用...”选项在同一页面上,所以为什么要说明明显 - 特别是因为它并不总是值得麻烦。【参考方案3】:

您还可以使用'Force Include' 选项:“此选项与在命令行中指定的每个源文件的第一行的#include 指令中使用双引号指定文件的效果相同,在 CL环境变量,或在命令文件中。”

在不更改所有源文件的情况下引入 PreCompiled Headers 非常方便...

【讨论】:

以上是关于如何在不关闭预编译头文件的情况下修复 C1010 错误?的主要内容,如果未能解决你的问题,请参考以下文章

fatal error C1010: 在查找预编译头时遇到意外的文件结尾

如何在不扩展包含的头文件的情况下预编译 C 源文件?

fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "stdafx.h"”?

错误描述:fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "stdafx.h"”?(转)

如何避免预编译头文件

解决错误 fatal error C1010: unexpected end of file while looking for precompiled head