수색…


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 용 배포 도구 인 The Mac Deployment Tool을 제공합니다.

Mac 배치 도구는 QTDIR/bin/macdeployqt 에서 찾을 수 있습니다. Qt 라이브러리가 포함 된 배포 가능한 응용 프로그램 번들을 개인 프레임 워크로 생성하는 과정을 자동화하도록 설계되었습니다.

또한 mac 배포 도구는 다음 규칙에 따라 Qt 플러그인을 배포합니다 ( -no-plugins 옵션을 사용 하지 않는 경우).

  • 플랫폼 플러그인은 항상 배포됩니다.
  • 디버그 버전의 플러그인은 배포되지 않습니다.
  • 디자이너 플러그인은 배포되지 않습니다.
  • 이미지 형식 플러그인은 항상 배포됩니다.
  • 인쇄 지원 플러그인은 항상 배포됩니다.
  • 응용 프로그램이 Qt SQL 모듈을 사용하는 경우 SQL 드라이버 플러그인이 배포됩니다.
  • 응용 프로그램에서 Qt 스크립트 모듈을 사용하는 경우 스크립트 플러그인이 배포됩니다.
  • 응용 프로그램이 Qt SVG 모듈을 사용하는 경우 SVG 아이콘 플러그인이 배포됩니다.
  • 접근성 플러그인은 항상 배포됩니다.

타사 라이브러리를 응용 프로그램 번들에 포함 시키려면 번들을 만든 후 수동으로 번들에 라이브러리를 복사하십시오.

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 프레임 워크 및 플러그인의 디버그 버전으로 배포 (-n-strip 포함)
실행 가능 = 주어진 실행 파일이 배포 된 프레임 워크를 사용하도록합니다.
-qmldir = .qml 파일에서 사용하는 가져 오기를 지정된 경로에 배포합니다.

자세한 정보는 Qt 문서 에서 확인할 수 있습니다.

리눅스에 배치하기

GitHub 에는 Linux 용 배포 도구가 있습니다 . 완벽하지는 않지만 Qt 위키와 연결됩니다. 개념적으로 Qt Mac Deployment Tool을 기반으로하며 AppImage 를 제공함으로써 유사하게 기능합니다.

데스크톱 파일에 AppImage가 제공되어야한다고 가정하면 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