質問

以下を含む大規模な既存の C++ プロジェクトがあります。

  • 4つのアプリケーション
  • 50以上のライブラリ
  • 20 以上のサードパーティ ライブラリ

このプロジェクトでは QMake (Trolltech の Qt の一部) を使用して Linux 上で製品版をビルドしていますが、私は MacOS 上でのビルドを試してきました。

QMake を使用して MacOS にうまく組み込むことができますが、最終的な .app を作成するのに苦労しています。すべてのサードパーティのフレームワークと動的ライブラリ、プロジェクトのすべての動的ライブラリを収集し、アプリケーションがそれらを確実に検出できるようにする必要があります。

install_name_tool の使用についてオンラインで読みましたが、それを自動化するプロセスがあるかどうか疑問に思っていました。

(おそらく答えは XCode を使用することです。関連する質問を参照してください。ただし、uic と moc のビルドに問題が発生します)

ありがとう

役に立ちましたか?

解決

これがあなたにとって大きな助けになると確信しています:

デプロイメント

お役に立てれば !

他のヒント

Last.fm でも同じ問題がありました。DeployQt を調べてみましたが、サードパーティのライブラリがある場合はあまり役に立ちません。最終的に、.app や .dmg の生成に使用できる Makefile を生成する Perl スクリプトを作成しました。

ここにアップロードしました: http://www.methylblue.com/detritus/QMake.dmg/

これを使用するには、これをアプリケーションの pro ファイルに追加します。

 macx*:!macx-xcode:release {
     system( QT=\'$$QT\' QMAKE_LIBDIR_QT=\'$$QMAKE_LIBDIR_QT\' $$ROOT_DIR/common/dist/mac/Makefile.dmg.pl $$DESTDIR $$VERSION $$LIBS > Makefile.dmg )
     QMAKE_EXTRA_INCLUDES += Makefile.dmg   
}

まだすべてが移植可能ではないと思いますが、他の人が使用して移植可能かどうかを確認するのは良いことです。

これは基本的にこのコードの最初の公式リリースですので、バグレポートや改善点を私に送ってください。ありがとう。

私は Qt アプリを OS X 上で静的に構築することで、この問題を完全に回避しました。ただし、それはあなたにとって現実的ではないかもしれません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top