デプロイ
QtのCMakeデプロイAPIを使用して、デスクトッププラットフォーム向けのQtプロジェクトをデプロイします。このAPIはさまざまなターゲットプラットフォームをサポートしており、その詳細はqt_generate_deploy_app_script()のドキュメントで確認できます。
デプロイのプロセスは、プロジェクトがQt Widgets アプリケーションか、Qt Quick アプリケーションかによって異なります。Qt Quick アプリケーションのみをデプロイする予定であっても、プロセスを理解するために、まずQt Widgets アプリケーションのデプロイについてお読みください。
Qt Widgets アプリケーションのデプロイ
このセクションでは、単純な C++ Qt XML プロジェクトを例に、Qt Widgets アプリケーションのデプロイ方法について説明します。
cmake_minimum_required(VERSION 3.16)
project(MyApp VERSION 1.0.0 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Qt6 REQUIRED COMPONENTS Core)
qt_standard_project_setup()
qt_add_executable(MyApp main.cpp)
target_link_libraries(MyApp PRIVATE Qt6::Core)アプリケーションターゲットを適切な場所にインストールするよう、CMakeに指示する必要があります。macOSでは、バンドルは直接 `${CMAKE_INSTALL_PREFIX}` にインストールされ、その他のプラットフォームではその下の `"bin" ` ディレクトリにインストールされます。
install(TARGETS MyApp
BUNDLE DESTINATION .
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)qt_standard_project_setup()は、CMakeのGNUInstallDirs.cmake をインポートすることに注意してください。これにより、CMAKE_INSTALL_BINDIR 変数が定義されます。
また、デプロイメントスクリプトを生成する必要があります。デプロイメントスクリプトとは、インストール時に実行される CMake コードのことです。このコードは、ランタイム依存関係を収集し、それらをインストールディレクトリにコピーする処理を行います。
qt_generate_deploy_app_script(
TARGET MyApp
OUTPUT_SCRIPT deploy_script
NO_UNSUPPORTED_PLATFORM_ERROR
)
install(SCRIPT ${deploy_script})qt_generate_deploy_app_script()コマンドは、ビルドディレクトリ内にデプロイメントスクリプトを生成します。生成されたスクリプトファイルのファイル名は、deploy_script 変数に格納されます。install(SCRIPT) を呼び出すことで、CMake にインストール時にスクリプトを実行するよう指示します。
このプロジェクトは、他のCMakeベースのプロジェクトと同様に、cmake --install . またはninja install を使用してインストールできます。インストール後、インストールディレクトリには、アプリケーションの実行に必要な共有ライブラリやアセットが含まれます。つまり、インストールによって、cpack などでパッケージ化できる状態の、自己完結型のディレクトリが生成されます。
Qt Quick アプリケーションのデプロイ
Qt Quick プロジェクトを展開するには、展開スクリプトを生成するために別のコマンドが必要です。それ以外の手順は、Qt Widgets アプリケーションを展開する場合と同様です。
まず、Qt Quick アプリケーションを作成します。
cmake_minimum_required(VERSION 3.16)
project(MyApp VERSION 1.0.0 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Qt6 REQUIRED COMPONENTS Core)
qt_standard_project_setup()
qt_add_executable(MyApp main.cpp)
qt_add_qml_module(MyApp
URI Application
VERSION 1.0
QML_FILES main.qml MyThing.qml
)アプリケーションは以前と同様にインストールします。
install(TARGETS MyApp
BUNDLE DESTINATION .
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)デプロイメントスクリプトを生成するには、qt_generate_deploy_app_script()の代わりにqt_generate_deploy_qml_app_script() を呼び出します。
qt_generate_deploy_qml_app_script(
TARGET MyApp
OUTPUT_SCRIPT deploy_script
)
install(SCRIPT ${deploy_script})インストール時には、アプリケーションバイナリに加え、QMLファイルや、プロジェクトで使用されるQtの共有ライブラリおよびアセットもデプロイされます。ここでも、生成されるディレクトリは自己完結型であり、cpack などのツールでパッケージ化できます。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.