重建预编译头

时间:2011-11-06 19:32:50

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

我正在尝试将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'中的代码。

4 个答案:

答案 0 :(得分:13)

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

  1. stdadx.h
  2. 中包含系统,第三方标题或不经常更改的标题
  3. stdafx.cpp 通常只包含 stdafx.h
  4. 所有项目cpp文件都包含 stdafx.h 作为第一个标题
  5. 您的项目标题文件不应包含stdafx.h
  6. 要触发预编译的头重建,

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

答案 1 :(得分:6)

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

答案 2 :(得分:2)

在VS 2012中,您可以将项目,解决方案或源文件的属性设置为不使用预编译标题。请参阅附图,了解如何操作...... VS Turn off Precompiled Headers

答案 3 :(得分:0)

在 VS2017 中,此错误一直存在,直到我将“项目属性”>“配置属性”>“C/C++”>“预编译头文件”>“预编译头文件”设置从“使用 (/Yu)”改为“创建 (/Yc)”。

对于项目设置,使用:

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

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

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