배포
Qt의 CMake 배포 API를 사용하여 데스크톱 플랫폼용 Qt 프로젝트를 배포할 수 있습니다. 이 API는 다양한 대상 플랫폼을 지원하며, 자세한 내용은 qt_generate_deploy_app_script() 문서에서 확인할 수 있습니다.
배포 과정은 프로젝트가 Qt Widgets 애플리케이션인지, 아니면 Qt Quick 애플리케이션인지에 따라 달라집니다. Qt Quick 애플리케이션만 배포할 계획이라 하더라도, 먼저 Qt Widgets 애플리케이션 배포에 대해 읽어보고 과정을 이해하시기 바랍니다.
Qt Widgets 애플리케이션 배포
이 섹션에서는 간단한 C++ Qt 프로젝트를 예로 들어 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.