배포

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 와 같은 도구로 패키징할 수 있습니다.

© 2025 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.