![](/img/trans.png)
[英]How to use google protobuf in a project with precompiled headers
[英]How to use precompiled headers in Qt project
我的 IDE:Visual Studio 2010,我使用 Qt 插件來運行 VS,Qt 版本。 4.8.1
我在 Qt 項目中嘗試創建預編譯頭文件 (pch)時遇到了這個問題。
我通常在非 Qt 項目中創建 pch 的方法是:
由於 Qt 項目的這些操作失敗了,我決定將由於 pch 發生的情況包含在 MOC 生成的所有文件中。
我在 QtAssistant 中閱讀了有關預編譯頭文件的文章,並執行了以下操作:
創建頭文件;
對於項目集選項中的所有 .cpp 文件,請使用 pch 並創建一個
轉換為qmake生成的項目
我跑了 qmake -project
我修改了生成的 .pro 文件,這里是:
模板 = 應用目標 = DEPENDPATH += 。 生成的文件 INCLUDEPATH += 。 PRECOMPILED_HEADER = StdAfx.h QT += 網絡
HEADERS += server.h StdAfx.h FORMS += server.ui SOURCES += main.cpp server.cpp StdAfx.h.cpp RESOURCES += server.qrc
我跑了qmake
打開 .pro 文件並嘗試構建它並得到錯誤:
錯誤 2 錯誤 C1083:無法打開包含文件:'StdAfx.h':沒有這樣的文件或目錄
我做錯了什么?
創建您的預編譯頭文件並包含所需的頭文件。
pch.hpp:
// precompiled headers
// add C includes here
#ifdef __cplusplus
// add C++ includes here
#include <iostream>
#include <QtGui>
#endif // __cplusplus
然后在您的 .pro 文件中:
CONFIG += precompile_header
PRECOMPILED_HEADER = pch.hpp
HEADERS += pch.hpp
Qmake 現在會自動為編譯器設置正確的選項。
我找到了解決方案。
為了在項目中使用預編譯頭,唯一需要做的就是在 .pro 文件中包含以下語句:
CONFIG += nameOfPrecompiledHeader.h
PRECOMPILED_HEADER = nameOfPrecompiledHeader.h
win32-msvc* {
PRECOMPILED_SOURCE = nameOfFileInWhichCreateOptionWillBeSet.cpp /* other .cpp files will be with use option*/
}
在 .pro 修改和運行 qmake 之后,所有 .cpp 文件將被設置為使用 pch 和一個用於它的創建(nameOfFileInWhichCreateOptionWillBeSet)和 .pch 將被生成
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.