7

私の IDE: Visual Studio 2010、VS 用の Qt アドイン、Qt ver. 4.8.1

Qt プロジェクトでプリコンパイル済みヘッダー (pch) を作成しようとしているときに、この問題に直面しました。

非Qtプロジェクトでpchを作成するための私の通常のアプローチは次のとおりです。

  1. ヘッダーを作成します。
  2. ヘッダーにプリコンパイルされるファイルを含めます。
  3. pch を使用する場合、プロジェクト状態のすべてのソース ファイルのプロパティで。
  4. pch のプロジェクト状態作成で 1 つのソース ファイルに対して。
  5. すべてのソース ファイルに pch を含めます。

これらのアクションは Qt プロジェクトで失敗したため、MOC によって生成されたすべてのファイルに pch が含まれているために何が起こるかを決定しました。

プリコンパイル済みヘッダーに関する QtAssistant の記事を読み、次のことを行いました。

  1. ヘッダー ファイルを作成しました。

  2. プロジェクト セット オプションのすべての .cpp ファイルに対して pch を使用し、1 つの作成に対して

  3. qmake 生成プロジェクトに変換

  4. qmake -project を実行しました

  5. 生成された .pro ファイルを変更しました。

    TEMPLATE = アプリ TARGET = DEPENDPATH += . GeneratedFiles INCLUDEPATH += . PRECOMPILED_HEADER = StdAfx.h QT += ネットワーク

    入力

    ヘッダー += server.h StdAfx.h フォーム += server.ui ソース += main.cpp server.cpp StdAfx.h.cpp リソース += server.qrc

  6. 私はqmakeを実行しました

  7. .pro ファイルを開いてビルドしようとすると、次のエラーが発生しました。

    エラー 2 エラー C1083: インクルード ファイルを開けません: 'StdAfx.h': そのようなファイルまたはディレクトリはありません

私が間違っていることは何ですか?

4

2 に答える 2

16

プリコンパイル済みヘッダー ファイルを作成し、必要なヘッダーを含めます。

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 は、コンパイラの正しいオプションを自動的に設定するようになりました。

于 2012-12-06T07:01:44.040 に答える
2

解決策を見つけました。
プロジェクトでプリコンパイル済みヘッダーを使用するために必要な唯一のことは、.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 を使用するように設定され、1 つが作成用に設定され (nameOfFileInWhichCreateOptionWillBeSet)、.pch が生成されます。

于 2012-12-04T20:43:12.467 に答える