簡體   English   中英

如何在 Qt 項目中使用預編譯頭文件

[英]How to use precompiled headers in Qt project

我的 IDE:Visual Studio 2010,我使用 Qt 插件來運行 VS,Qt 版本。 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 文件,這里是:

    模板 = 應用目標 = 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

  6. 我跑了qmake

  7. 打開 .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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM