2013-06-17 2 views
0

C++ 응용 프로그램을 배포하려면 Qtmacdeployqt을 사용합니다.Qt Mac OS 응용 프로그램 배포 누락 프레임 워크

번들 앱에 OpenGL and Qt Frameworks이 포함되어 있지만 다른 사람 (예 : SDL)이 누락되어 SDL framework이없는 경우 다른 시스템에서 앱이 작동하지 않습니다. 내 프로 파일은 다음과 같습니다

QT  += core 
QT += xml 
QT += opengl 
QT  += gui 

TARGET = StripTest 
CONFIG += console 
TEMPLATE = app 


#Main app 
SOURCES += main.cpp \ 
    StripWindow.cpp \ 
    MainWindow.cpp \ 

HEADERS += StripWindow.h \ 
    MainWindow.h\ 

#Graphics 
SOURCES += \ 
    ../../libs/PhGraphic/SDLMain.cpp \ 

INCLUDEPATH += ../../libs \ 
     /Library/Frameworks/ \ 

LIBS += -framework SDL -framework SDL_image -framework SDL_ttf 

너무 프레임 워크를 컴파일해야합니까?

편집 : 번들에 수동으로 프레임 워크를 복사하면 문제가 해결되지 않습니다. 존재해야합니다 /Library/Frameworks/

+0

macdeployqt가 다른 프레임 워크를 자동으로 복사하지 않는다고 생각하십니까 – spiritwolfform

+0

그리고 그들을 포함시킬 방법을 알고 있습니까? –

답변

1

macdeployqt는 필수 Qt 프레임 워크를 응용 프로그램에만 복사하고 수정합니다.

응용 프로그램의 실행 파일 (번들의 Contents/MacOS 폴더)에서 "otool -L"을 실행하면 라이브러리 프레임 워크가 참조되는 위치를 알 수 있습니다.

.pro 파일에 나열된 Qt의 라이브러리가 아닌 다른 라이브러리는 응용 프로그램 번들의 Frameworks 폴더에 복사 한 다음 install_name_tool 명령을 실행하여 응용 프로그램이 참조하는 경로를 업데이트해야합니다.

Qt OSX 앱을 컴파일 할 때 포스트 프로세스 이벤트로 실행하기위한 배치 스크립트를 만드는 것이 좋습니다.

관련 문제