2010-01-30 4 views
3

QT 앱을 배포하는 가장 좋은 방법은 무엇입니까? trolltech에서 호스팅되는 설명서를 읽었지만 정적 라이브러리 또는 동적 라이브러리와 링크하여 사용자가 프레임 워크를 설치하게하는 것이 더 좋습니다. 나는 정말로 내 앱을 사용하는 사람이 단순한 GUI 프론트 엔드를 실행하기 위해 160MB 프레임 워크를 다운로드해야하는 것을 원하지 않는다.OS X 및 Linux에 QT 앱 배포

답변

2

유감스럽게도 사용자는 자신의 번들에 필요한 Qt 라이브러리를 포함시켜야합니다. 사용자가 Mac에 Qt를 설치할 수는 없기 때문입니다 (Linux 패키징 시스템에서는 최소한 Qt 버전을 요구할 수 있습니다).

macdeployqt라고하는 멋진 도구가 있습니다. 번들 응용 프로그램에서 호출하면 필요한 라이브러리가 압축되어 참조 할 수 있도록 링크가 변경됩니다. Mac 용 번들을 만드는 것은 정말 고통스런 일입니다 (여전히 그렇지만 상당히 적습니다).

http://doc.trolltech.com/4.6/deployment-mac.html#the-mac-deployment-tool

그런 다음 다른 응용 프로그램과 마찬가지로 .dmg 이미지를 만들 수 있습니다. macdeployqt에는 기본적인 것을 만드는 옵션이 있습니다.

2

Linux의 경우 Qt 사본을 사용하는 것이 더 낫습니다. OS X의 경우 거의 모든 응용 프로그램이 정적으로 컴파일 된 라이브러리를 사용합니다.

+0

나는 Mac OS X의 대부분의 애플 리케이션은 애플 리케이션 번들 –

+0

@ Kamil True 내부의 프레임 워크를 포함하고 있습니다. 좋은 생각은 아니지만, 시스템 전체에 프레임 워크를 설치하려고하는 것입니다. 윈도우/리눅스 방식의 차이점 –

3

OS X에서는 4.5로 시작하는 Qt와 함께 제공되는 macdeployqt 도구를 사용하여 동적 빌드와 후 처리 결과를 얻는 좋은 방법입니다.

이렇게하면 응용 프로그램에서 사용하는 Qt 프레임 워크가 응용 프로그램 번들로 복사되므로 응용 프로그램의 정적 버전을 빌드하는 것보다 큰 패키지가 생성됩니다. ,

  • 우선 당신은 단지 project.pro 파일의에서 당신이 필요로하는 물건을 (포함해야합니다 : 여기

    는 동적 빌드에서 가능한 가장 작은 파일 크기를 얻을 수 있는지 확인하기 위해 무엇을 할 수 QT += core gui network xml 회선).
  • 응용 프로그램 번들을 열고 불필요한 "Qt 플러그인"을 번들에서 제거하십시오. macdeployqt은 자동으로 을 모두 Qt 플러그인이 들어있어 부피가 커질 수 있습니다.
  • 모드로 애플리케이션을 빌드해야합니다. 그렇지 않으면 응용 프로그램이 Qt4 프레임 워크의 디버그 라이브러리에 연결될 수 있으며 이 실제로입니다 (예 : 디버그 라이브러리의 경우 90MB가 넘고 디버깅 기호가없는 릴리스 변형의 경우 16MB). 이것은 귀하의 경우에 일어날 수 있습니다.
  • 응용 프로그램 바이너리가 큰 경우 UPX을 사용하여 실행 파일을 40-50 % 압축 할 수 있습니다.

이외의 경우 압축 된 디스크 이미지를 사용하여 응용 프로그램을 배포해야합니다. 내 프로젝트의

하나는 이 QtGui, QtNetwork,QtCore 및 QtXml 그 결과 번들의 크기가 약 16 MB입니다 사용합니다.

희망이 있습니다.