サーチ…


Windowsへの展開

QtはWindows用の展開ツールwindeployqtを提供しています。このツールは、Qtモジュールへの依存関係のために実行可能なQtアプリケーションを検査し、検査された実行可能ファイルを実行するのに必要なQtファイルを含む展開ディレクトリを作成します。考えられるスクリプトは次のようになります。

set PATH=%PATH%;<qt_install_prefix>/bin
windeployqt --dir /path/to/deployment/dir /path/to/qt/application.exe

setコマンドは、QtのbinディレクトリをPATH環境変数に追加するために呼び出されます。 windeployqtが呼び出されます:

  • デプロイメントディレクトリへのパスには、オプションの引数--dir (デフォルトはwindeployqtが呼び出されるパス)が与えられます。
  • 検査される実行可能ファイルへのパスは、最後の引数として与えられます。

デプロイメントディレクトリを実行可能ファイルにバンドルすることができます。

注意:

Windows上でvs2013で事前コンパイルされたQt5.7.0を使用している場合(すべてのバージョンにこの問題があるかどうか不明)<QTDIR>\5.7\msvc2015\qmlをbinディレクトリに手動でコピーする必要があります。あなたのプログラム。それ以外の場合、プログラムは起動後に自動的に終了します。

Qtのドキュメントも参照してください。

CMakeとの統合

CMakeからwindeployqtmacdeployqtを実行することは可能ですが、まず実行ファイルへのパスを見つける必要があります:

# Retrieve the absolute path to qmake and then use that path to find
# the binaries
get_target_property(_qmake_executable Qt5::qmake IMPORTED_LOCATION)
get_filename_component(_qt_bin_dir "${_qmake_executable}" DIRECTORY)
find_program(WINDEPLOYQT_EXECUTABLE windeployqt HINTS "${_qt_bin_dir}")
find_program(MACDEPLOYQT_EXECUTABLE macdeployqt HINTS "${_qt_bin_dir}")

windeployqtがインストールされた場所でQtライブラリを見つけるためには、フォルダを%PATH%追加する必要があります。ビルド後にmyappという名前のターゲットに対してこれを行うには:

add_custom_command(TARGET myapp POST_BUILD
    COMMAND "${CMAKE_COMMAND}" -E
        env PATH="${_qt_bin_dir}" "${WINDEPLOYQT_EXECUTABLE}"
            "$<TARGET_FILE:myapp>"
    COMMENT "Running windeployqt..."
)

バンドル上でmacdeployqtを実行macdeployqtには、次のようにします。

add_custom_command(TARGET myapp POST_BUILD
    COMMAND "${MACDEPLOYQT_EXECUTABLE}"
        "$<TARGET_FILE_DIR:myapp>/../.."
        -always-overwrite
    COMMENT "Running macdeployqt..."
)

Macでの展開

Qtは、Mac用の展開ツールであるMac Deployment Toolを提供しています。

Macデプロイメントツールは、 QTDIR/bin/macdeployqtます。プライベートフレームワークとしてQtライブラリを含む展開可能なアプリケーションバンドルを作成するプロセスを自動化するように設計されています。

mac配備ツールは、以下のルールに従って(Qtプラグインもデプロイします( -no-pluginsオプションを使用しない限り)。

  • プラットフォームプラグインは常に展開されます。
  • デバッグバージョンのプラグインはデプロイされません。
  • デザイナープラグインは展開されていません。
  • 画像フォーマットプラグインは常に配備されています。
  • 印刷サポートプラグインは常に展開されます。
  • アプリケーションがQt SQLモジュールを使用する場合は、SQLドライバプラグインがデプロイされます。
  • アプリケーションがQtスクリプトモジュールを使用する場合、スクリプトプラグインがデプロイされます。
  • アプリケーションがQt SVGモジュールを使用する場合、SVGアイコンプラグインがデプロイされます。
  • アクセシビリティプラグインは常に配備されています。

サードパーティのライブラリをアプリケーションバンドルに含めるには、バンドルが作成された後でライブラリをバンドルに手動でコピーします。

macdeployqtツールを使用するには、ターミナルを開いて次のようにmacdeployqtます。

$ QTDIR/bin/macdeployqt <path to app file generated by build>/appFile.app

appファイルには、プライベートフレームワークとして使用されるすべてのQtライブラリが含まれるようになりました。

macdeployqtは次のオプションもサポートしています

オプション説明
-verbose = <0-3> 0 =出力なし、1 =エラー/警告(デフォルト)、2 =正常、3 =デバッグ
-no-plugins プラグインの配置をスキップする
-dmg .dmgディスクイメージを作成する
- ストリップなしバイナリで 'strip'を実行しないでください
-use-debug-libs フレームワークとプラグインのデバッグバージョンでデプロイする(-no-stripを暗示する)
-executable = 与えられた実行可能ファイルに、デプロイされたフレームワークも使用させる
-qmldir = .qmlファイルで使用されるインポートを指定されたパスに展開する

詳細な情報はQtドキュメントに記載されています

Linux上でのデプロイメント

GitHubにはLinux用のデプロイメントツールがあります 。完璧ではありませんが、それはQt wikiからリンクされています。それは概念的にQt Mac Deployment Toolに基づいており、同様にAppImageを提供することで機能します。

デスクトップファイルにAppImageを提供する必要がある場合、linuxdeployqtはlinuxdeployqtを使用してビルドのパラメータを決定します。

linuxdeployqt ./path/to/appdir/usr/share/application_name.desktop

デスクトップファイルで実行する実行ファイルEXEC= )、アプリケーションの名前、およびアイコンを指定します。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow