重建预编译头文件

9

我正在尝试使用MFC和ProC。
在Functions.pc中,我使用ProC语法连接到数据库。因此,在我想调用“Functions.h”中的函数的对话框模型中,我包含了“Functions.h”。现在我遇到了这个错误。

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

我知道我需要在'Functions.h'中包含'stdafx.h',才能让它正常工作。我已经这样做了。它可以编译,但是当我尝试运行程序时,它无法识别由'Functions.cpp'创建的ProC语法。我不太明白如何重新构建预编译头文件,因为我不理解'stdafx.h'中的代码。


你是在哪个部分说的? - Azuan
1
@tokwan:它在标签维基中。如果你将鼠标悬停在标签上,它会显示相应的维基内容。 - Andrew Grimm
可能是重复的问题:如何解决构建时缺少.pch文件的问题? - Jim Fell
4个回答

14

在Windows上使用预编译头文件的常见方法是:

  1. 将系统、第三方头文件或不经常修改的头文件包含在stdafx.h中。
  2. stdafx.cpp通常只包含stdafx.h
  3. 您的项目cpp文件都要将stdafx.h作为第一个头文件进行包含。
  4. 您的项目头文件不应该包含stdafx.h

触发预编译头文件重建的方法:

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

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

@Nick 好久不见了,我记不太清了。但是你可以右键点击 cpp 文件,然后相应地更改设置。我在使用 Visual Studio。点击链接查看截图 http://goo.gl/cKA8mZ - Azuan
@Nick 如何禁用 CPP 文件的预编译头:https://dev59.com/u2ox5IYBdhLWcg3wQSOp#9319031 - Andreas

3

在VS 2012中,您可以设置项目、解决方案或源文件的属性,以不使用预编译头文件。请参见附图了解如何进行操作... 关闭VS预编译头文件


0
在VS2017中,直到我将项目属性>配置属性>C/C++>预编译头>预编译头设置从“使用(/Yu)”更改为“创建(/Yc)”,此错误才得以解决。
对于项目设置,请使用:
  • “创建”用于由项目生成的预编译头文件
  • “使用”用于由另一个项目生成的预编译头文件
对于每个文件的设置,请使用:
  • 仅对stdafx.cpp文件使用“创建”
  • 对所有其他.c.cpp文件使用“使用”

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接