spi*_*ght 7 c++ qt visual-studio-2010 precompiled-headers
我的IDE:Visual Studio 2010,我使用Qt加载项为VS,Qt ver.4.8.1
在我的Qt项目中尝试创建预编译头(pch)时,我遇到了问题.
我在非Qt项目中创建pch的方法是:
1.创建标题;
2.包含将在头文件中预编译的文件;
3.对于项目状态中的每个源文件,如果它将使用pch;
4.对于pch的项目状态创建中的一个源文件; 5.在所有源文件中包含pch.
由于这些操作对Qt项目失败,我决定将pch发生的事情应该包含在MOC生成的所有文件中.
我在QtAssistant中阅读了有关预编译头文章的文章并执行了以下操作:
1.创建头文件;
2.对于项目集选项中的所有.cpp文件,使用pch和一个创建
3.转换为qmake生成的项目
4.我运行了qmake -project
5.我修改了生成的.pro文件,这里是:
TEMPLATE = app
TARGET =
DEPENDPATH += . GeneratedFiles
INCLUDEPATH += .
PRECOMPILED_HEADER = StdAfx.h
QT += network
# Input
HEADERS += server.h StdAfx.h
FORMS += server.ui
SOURCES += main.cpp server.cpp StdAfx.h.cpp
RESOURCES += server.qrc
Run Code Online (Sandbox Code Playgroud)
打开.pro文件并尝试构建它并得到错误:
错误2错误C1083:无法打开包含文件:'StdAfx.h':没有这样的文件或目录
我做错了什么?
Gor*_*man 15
创建预编译的头文件并包含所需的标头.
pch.hpp:
// precompiled headers
// add C includes here
#ifdef __cplusplus
// add C++ includes here
#include <iostream>
#include <QtGui>
#endif // __cplusplus
Run Code Online (Sandbox Code Playgroud)
然后在你的.pro文件中:
CONFIG += precompile_header
PRECOMPILED_HEADER = pch.hpp
HEADERS += pch.hpp
Run Code Online (Sandbox Code Playgroud)
Qmake现在将自动为编译器设置正确的选项.
我找到了解决方案。
为了在项目中使用预编译头,唯一需要做的就是在 .pro 文件中包含以下语句:
CONFIG += nameOfPrecompiledHeader.h
PRECOMPILED_HEADER = nameOfPrecompiledHeader.h
win32-msvc* {
PRECOMPILED_SOURCE = nameOfFileInWhichCreateOptionWillBeSet.cpp /* other .cpp files will be with use option*/
}
Run Code Online (Sandbox Code Playgroud)
修改 .pro 并运行 qmake 后,将设置所有 .cpp 文件以供 pch 使用,并创建一个用于 pch 的创建 (nameOfFileInWhichCreateOptionWillBeSet) 并生成 .pch
| 归档时间: |
|
| 查看次数: |
12627 次 |
| 最近记录: |