重建预编译头文件
Posted
技术标签:
【中文标题】重建预编译头文件【英文标题】: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'
中的代码。
【问题讨论】:
你说的是哪一部分? @tokwan:它在标签 wiki 中。如果您将鼠标悬停在标签上,它会显示它的 wiki。 How to fix .pch file missing on build?的可能重复 【参考方案1】:在windows上使用预编译头的常用方法是
-
在 stdadx.h 中包含系统、第三方标头或不经常更改的标头
stdafx.cpp 通常只包含 stdafx.h
您的所有项目 cpp 文件都包含 stdafx.h 作为第一个标头
您的项目头文件不应包含 stdafx.h
要触发预编译的头文件重建,
-
修改 stdafx.h 并进行增量构建
或者做一个重建项目
【讨论】:
【参考方案2】:自己找到了解决方案。我需要将该 .cpp 文件的属性设置为不使用任何预编译的头文件。
【讨论】:
@Nick 已经有一段时间了,不记得了。但是您可以右键单击 cpp 文件并相应地更改设置。我为此使用 Visual Studio。点击截图链接goo.gl/cKA8mZ @Nick 如何禁用 CPP 文件的预编译头文件:***.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
文件
【讨论】:
以上是关于重建预编译头文件的主要内容,如果未能解决你的问题,请参考以下文章