2

QT を静的にコンパイルしたいので、次の手順を実行しました。

1) 構成 -静的 -デバッグ -オープンソース

2)nmake sub-src しかし、このステップでは次のようなエラーがいくつかあります

D:\qt\bin\rcc.exe -name mimetypes D:\qt-everywhere-opensource-src-5.0.1\ qtbase\src\corelib\mimetypes\mimetypes.qrc -o .rcc\debug_static\qrc_mimetypes.cp p 「D:\qt\bin\rcc.exe」は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されません。NMAKE: 致命的なエラー U1077: 'D:\qt\bin\rcc.exe': リターン コード '0x1' 停止します。NMAKE: 致命的なエラー U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 11.0 \VC\BIN\nmake.exe"': リターン コード '0x2' 停止します。NMAKE: 致命的なエラー U1077: 'cd': リターン コード '0x2' 停止します。NMAKE: 致命的なエラー U1077: 'cd': リターン コード '0x2' 停止します。

私は何をすべきか?

4

1 に答える 1

2

Qt 5.x をコンパイルする前に、いくつかのライブラリをインストールする必要がある場合があります (コンパイルするモジュールによって異なります)。

  • ActivePerl (** qtsdkの構成に使用されるため、必要)
  • Microsoft Windows SDK 7.1
  • Microsoft DirectX SDK
  • パイソン
  • ICU
  • ...

内部で同じライブラリ (zlib など) を使用するライブラリ (Assimp など) を使用する場合は、qtbase\src\3rdpartyサブディレクトリにあるこれらのライブラリを最新バージョンで上書きする必要がある場合があります。

qtbaseディレクトリにあるファイルconfigure.batを編集し、行 45 をコメントアウトします。
::if not exist %QTSRC%\.gitignore goto sconf

qtbase\mkspecs\win32-msvc2010 (Visual Studio 2010 を使用している場合) またはqtbase\mkspecs\win32-msvc2012 (Visual Studio 2012 を使用している場合)にあるファイルqmake.confを編集します。

  • 9行目:CONFIG += incremental flat precompile_header autogen_precompile_source debug_and_release debug_and_release_target
  • 23行目:QMAKE_CFLAGS_RELEASE = -O2 -MT
  • 24行目:QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi
  • 25行目:QMAKE_CFLAGS_DEBUG = -Zi -MTd

Visual Studio のコマンド プロンプトを開始します: [スタート] > [プログラム] > [Microsoft Visual Studio 20XX] > [Visual Studio ツール]。Perl.exeへのパスがPATH環境変数に
あることを確認してください: (またはx64 用にコンパイルする場合)。PATH=%PATH%;C:\Perl\binPATH=%PATH%;C:\Perl64\bin

qtbaseディレクトリに移動しますCD \Qt\5.0.1\qtbase

デバッグ バージョンとリリース バージョンを静的にコンパイルするように Qt を構成します。

  • configure -developer-build -opensource -confirm-license -platform win32-msvc2010 -mp -nomake examples -nomake tests -static(Visual Studio 2010 を使用している場合)
  • configure -developer-build -opensource -confirm-license -platform win32-msvc2012 -mp -nomake examples -nomake tests -static(Visual Studio 2012 を使用している場合)
例とテストは、必要に応じて後でコンパイルできます。OpenGL
を使用する予定がある場合は、コマンド ラインに追加します。それ以外の場合、Qt はデフォルトでモバイル デバイス向けの OpenGL/ES を使用します。 CPU がマルチコア対応でない場合は、オプションを削除してください。-opengl desktop
-mp

親ディレクトリに戻ります: CD ...

Qt : configure -developer-build -opensource -confirm-license -platform win32-msvc20XXを再度構成します-opengl desktop -mp -nomake examples -nomake tests -static
(この手順が必要かどうかはわかりませんが、数秒しかかからないため...)。

コンパイル: nmake.

コンパイルのもう 1 つの方法は、jomを使用して、使用する CPU コアの数を指定することですC:\Qt\jom\jom.exe -j #NUMBER_OF_CORES#

コンパイルされた静的ライブラリはqtbase\libフォルダーにあり、含めるファイルはqtbase\includeのサブディレクトリにあります。
それらを使用するには、Visual C++ プロジェクトで静的ランタイム ライブラリ(/MTまたは) を使用する必要があります。/MTd

于 2013-02-26T15:08:48.033 に答える