3

Qt 5.1 の最小限の静的ビルドを作成する方法を探しています。最小限とは、利用可能なウィジェット クラスの基本セットのみを含むビルドを意味します (OpenGL キャンバス/ウィジェットによる 2D グラフィックス アクセラレーションを含む)。MinGW ビルド GCC 4.8.1とMSYSおよびツールのバンドルを使用して、Windows 7 32 ビットでの静的ビルドを目指しています。

ソース ツリー全体をダウンロードしましたが、OpenSSL や ICU などのパッケージの依存関係により、コンパイルでいくつかの問題が発生しました (最新の OpenSSL はコンパイルされませんでした)。これらのパッケージの依存関係を回避し、同時に Qt 5.1 の最小限の静的ビルドを達成して、最終的な実行可能ファイルのサイズが巨大にならないようにしたかったのです。

このリストを見てみました: http://download.qt-project.org/official_releases/qt/5.1/5.1.0/submodules/

Q1 : これらのモジュールのどれを選択する必要がありますか?

Q2 : これらのモジュールは何らかの形で相互に依存していますか (それらはすべて「qtbase」に依存していると思います)?

Q3 : Qt ビルドの構成で選択を解除するために、そのリストの名前 (たとえば、「qtxmlpatterns」、「qtx11extras」、「qtwebkit」など) を使用する必要がありますか?

また、Qt 5 のさまざまなサブモジュールの説明があればいいですね。誰かがこの主題に関する明るい言葉を含むリンクやドキュメントを指し示すことができれば、それも素晴らしいことです.

4

3 に答える 3

0

私はこの同じ目標を共有しました。Qt を「縮小」して、ライブラリ/DLL の小さなサブセットのみを構築し、残りを省略したかったのです。

少なくとも Mac OS X では成功しました。このアプローチは他のプラットフォームでも機能すると思います。

「configure」スクリプト用のある種の除外フラグを見つけるのが秘訣だと思っていましたが、そうではありませんでした。

これが私がしたことです:

  1. ソース ディストリビューションをダウンロードします (私の場合はqt-everywhere-opensource-src-5.1.1 )。もちろん全部抜きます。

  2. 次の 3 つの「pro」ファイルを編集します。これらのファイルは qt 固有の形式 (ただし、プレーン テキスト) です。これらは、Qt (qmake 経由) が makefile を生成するために使用する、プラットフォームに依存しないプロジェクト ファイルです。

    • qtbase/src/src.pro
    • qtbase/src/plugins/plugins.pro
    • qtbase/examples/examples.pro

「pro」ファイルに加えた変更はすべて削除でした。dbus、ipc、network、qtconcurrent、sql、xml、sqldrivers、qdbusxml2cpp、qdbuscpp2xml、src_dbus、src_concurrent、src_sql、src_network への参照を削除しました。

最後の部分は怖く聞こえるかもしれません。本当にそうではありませんでした。

pro ファイルには、モジュール名、プラグイン名、およびディレクトリ名のリストが含まれています。(たとえば) SQL 関連のすべての行を削除する方法はかなり簡単に思えました。

ステップ 3。

通常の構成/作成/インストール。ただし、make に渡される「module-qtbase」引数に注意してください。

./configure -prefix ~/my_test_dir/
make -j2 module-qtbase
make -j2 module-qtbase-install_subtargets

成功。これにより、必要不可欠なもの (QtCore、QtGui、QtOpenGL、QtWidgets) のみがビルドおよびインストールされ、QtConcurrent、QtMultimedia、QtSql、および QtWebKit などのサポートされているすべての dylib がスキップされました。

于 2013-12-11T02:21:24.543 に答える