4

QT アプリを展開する最良の方法は何ですか? trolltech でホストされているドキュメントを読みましたが、静的ライブラリまたは動的ライブラリとリンクして、ユーザーにフレームワークをインストールしてもらう方が良いですか? シンプルな GUI フロントエンドを実行するためだけに、私のアプリを使用する人が 160 MB のフレームワークをダウンロードする必要はありません。

4

3 に答える 3

4

macdeployqtOS X では、4.5 以降の Qt に付属するツールを使用して、動的ビルドを実行し、結果の ".app" を後処理することをお勧めします。

これにより、アプリケーションで使用される Qt フレームワークがアプリケーション バンドルにコピーされるため、アプリケーションの静的バージョンをビルドするよりもパッケージが大きくなります。

動的ビルドで可能な限り最小のファイル サイズを取得するためにできることは次のとおりです。

  • まず、必要なものだけを含めるようにしてください (project.pro ファイルのQT += core gui network xml行に)。
  • アプリケーション バンドルを開き、不要な「Qt プラグイン」をバンドルから削除します。そこにあるすべての Qt プラグインをmacdeployqt自動的にコンパイルします。
  • アプリケーションをリリースモードでビルドしていることを確認してください。そうしないと、アプリケーションがQt4 フレームワークのデバッグ ライブラリにリンクされている可能性があり、それらは非常に大きくなります (たとえば、デバッグ ライブラリの場合は 90 MB をはるかに超えますが、デバッグ シンボルのないリリース バリアントの場合は 16 MB になります)。これはあなたの場合に起こったことかもしれません。
  • 大きなアプリケーション バイナリがある場合は、UPXを使用して実行可能ファイルを 40 ~ 50% 圧縮できます。

それ以外では、圧縮されたディスク イメージを使用してアプリケーションをデプロイする必要があります。

私のプロジェクトの 1 つはQtGuiQtNetworkQtCore、およびQtXmlを使用しており、結果のバンドルのサイズは約 16 MB です。

それが役立つことを願っています。

于 2010-01-31T11:09:48.683 に答える
2

残念ながら、ユーザーが Mac に Qt をインストールすることは期待できないため、必要な Qt ライブラリを独自のバンドルに含める必要があります (Linux パッケージ システムでは、少なくとも特定のバージョンの Qt.

macdeployqt と呼ばれる便利なツールがあります。バンドル アプリケーションで呼び出すだけで、必要なライブラリがパックされ、バイナリのリンクがそれらを参照するように変更されます。それがなければ、Mac 用のバンドルを作成するのは非常に困難です (それでも問題はありますが、かなり軽減されます)。

http://doc.trolltech.com/4.6/deployment-mac.html#the-mac-deployment-tool

その後、他のアプリと同じように .dmg イメージを作成できます。基本的なものを構築する macdeployqt のオプションがあります。

于 2010-01-31T10:47:12.327 に答える
2

Linux では、OS の Qt のコピーがほぼ確実にインストールされているため、OS の Qt のコピーに依存することをお勧めします。OS X では、ほとんどすべてのアプリが静的にコンパイルされたライブラリを使用します。

于 2010-01-30T02:37:02.310 に答える