【问题标题】:C++ Precompiled Header DisabledC++ 预编译头文件已禁用
【发布时间】:2015-11-21 22:36:19
【问题描述】:

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

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

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

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

【问题讨论】:

  • 您是否忘记将 '#include "stdafx.h"' 添加到您的源代码中?
  • 尝试“清理”您的项目,然后重新构建。如果你真的删除了预编译的头文件,这应该可以工作。否则,您可能仍然在某处启用该功能
  • 在VS2015中,需要hawkeyes注意设置对话框中选择的Configuration和Platform。顶部的两个组合框。它们通常是错误的,并且与您当前的选择不匹配,因此您将更改错误的设置。非常糟糕的虫子,我已经掉了至少两打白毛。
  • Jepessen,我不想使用预编译的头文件。这就是我关闭它们的原因。
  • 谢谢汉斯。我只在一种配置中禁用了它。

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


【解决方案1】:

好的。 Hans Passant 发现了发生了什么:

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

【讨论】:

    【解决方案2】:

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

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

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

    如果有 stdafx.cpp 文件,它可能有“创建预编译头文件”设置。如果该文件中没有任何相关代码,您通常可以将其删除。

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

    【讨论】:

    • 对于大多数人来说,这个答案比公认的答案更有用。
    【解决方案3】:

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

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

    <PrecompiledHeader>Use</PrecompiledHeader>

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

    【讨论】:

      【解决方案4】:

      Microsoft Visual Studio 2015:

      右键解决方案 -> 配置属性 -> C/C++ -> 预编译头文件 -> 预编译头文件 => 不使用预编译头文件

      【讨论】:

        【解决方案5】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-04-14
          • 2011-02-25
          • 2017-03-09
          • 2010-11-20
          • 2020-05-17
          • 1970-01-01
          • 2012-12-02
          相关资源
          最近更新 更多