【问题标题】:Rebuild precompiled header重建预编译头文件
【发布时间】:2011-11-06 19:32:50
【问题描述】:

我正在尝试将 MFC 与 ProC 一起使用。
Functions.pc 是我使用 ProC 语法连接到数据库的地方。所以我在对话框模型中包含了'Functions.h',我想在其中调用'Funtions.h' 中的函数。现在我得到了这个错误。

    Add directive to 'stdafx.h' or rebuild precompiled header

我知道我需要将'stdafx.h' 包含到'Functions.h' 才能使其正常工作。我做到了。它可以编译,但是当我尝试运行程序时,它无法识别由 'Functions.cpp' 创建的 ProC 的语法。我真的不明白如何重建预编译的头文件,因为我不明白'stdafx.h' 中的代码。

【问题讨论】:

标签: c++ visual-studio oracle-pro-c


【解决方案1】:

在windows上使用预编译头的常用方法是

  1. stdadx.h 中包含系统、第三方标头或不经常更改的标头
  2. stdafx.cpp 通常只包含 stdafx.h
  3. 您的所有项目 cpp 文件都包含 stdafx.h 作为第一个标头
  4. 您的项目头文件不应包含 stdafx.h

要触发预编译的头文件重建,

  1. 修改 stdafx.h 并进行增量构建
  2. 或者做一个重建项目

【讨论】:

    【解决方案2】:

    自己找到了解决方案。我需要将该 .cpp 文件的属性设置为不使用任何预编译的头文件。

    【讨论】:

    • @Nick 已经有一段时间了,不记得了。但是您可以右键单击 cpp 文件并相应地更改设置。我为此使用 Visual Studio。点击截图链接goo.gl/cKA8mZ
    • @Nick 如何禁用 CPP 文件的预编译头文件:stackoverflow.com/a/9319031/1879699
    【解决方案3】:

    在 VS 2012 中,您可以将项目、解决方案或源文件的属性设置为不使用预编译头文件。具体操作方法见附图…… VS Turn off Precompiled Headers

    【讨论】:

      【解决方案4】:

      在 VS2017 中,此错误一直存在,直到我将 Project Properties > Configuration Properties > C/C++ > Precompiled Headers > Precompiled Header 设置从“使用 (/Yu)”切换到“创建 (/Yc)”。

      对于项目设置,使用:

      • 为项目生成的预编译头文件“创建”
      • “使用”由另一个项目生成的预编译头文件

      对于每个文件设置,使用:

      • 为 stdafx.cpp 文件“创建”
      • “使用”所有其他 .c.cpp 文件

      【讨论】:

        猜你喜欢
        • 2020-08-16
        • 2010-11-20
        • 1970-01-01
        • 2012-07-09
        • 1970-01-01
        • 2020-07-19
        • 2015-01-03
        • 2015-01-05
        相关资源
        最近更新 更多