2012-09-07 1 views
3

CMake를 빌드 시스템으로 사용하여 Qt 프로젝트를 만들었습니다. 내가 배포 단계에 포함 할, 필요한 Qt는 독립형 데미지로 내 프로그램을 배포 할 준비를하기 위해Qt 라이브러리를 OSX의 .app 프로젝트 안에 CMake와 함께 포함시키는 방법은 무엇입니까?

Qt3Support.framework/ QtNetwork.framework/ QtXml.framework/ 
QtCore.framework/  QtOpenGL.framework/ 
QtGui.framework/  QtSql.framework/ 

을 프레임 워크.

은 일반적으로 macdeployqt 명령을 수행하지만 저에게이 같은 오류를 많이 제공합니다,
ERROR: "strip: for architecture x86_64 object: 
/Users/rs/build/myapp.app/Contents/Frameworks/QtXmlPatterns.framework/Versions/4/QtXmlPatterns 
malformed object (unknown load command 5) 

그래서 난 배포 단계에서 직접 할 수 있도록하려면 그것을 가능?

+0

'DeployQt4.cmake' 모듈이 적합 할 수 있습니다. – arrowd

+0

좋습니다 DeployQt4 모듈을 사용해 보았습니다. 그러나 실제 예제를 찾는 것은 매우 어렵습니다. 그리고 두 번째로 그것은 부서집니다! 이 사이트 http://www.vtk.org/Wiki/BundleUtilitiesExample의 kitware 문서에서 예제를 시도하고 예제 테스트를 다운로드했지만, 항상 오류가 발생합니다 : 'CMake Error at/Applications/CMake 2.8-9 (가장 최근에 가장 먼저 호출) : /Applications/CMake 2.8-9.app/Contents/ 호출 스택 (가장 최근 호출 먼저) : /응용 프로그램/CMake 2.8-9.app/Contents/ share/cmake-2.8/Modules/BundleUtilities.cmake : 666 (verify_app)' – linello

답변

2

수정하기가 쉽지 않은 문제가 발생할 때까지 DeployQt4 및 BundleUtilities를 사용하고있었습니다. according to one of the authors.

BundleUtilities가이 문제를 방지하는 루비 스크립트를 작성했습니다. 스크립트에는 현재 BundleUtilities와 비교되는 제한 사항이 있습니다. 다중 실행 파일이있는 번들은 처리하지 않습니다. cmake에서 같은 기능을 쓰는 것은 나의 정도의 매저키즘 (BundleUtilities가하는 일을 이해할 수 있었고, 메모리에서 데이터를 조직화하기 위해 사용해야만했던 방법으로는 어리둥절했었다.

스크립트 자체는 여기에 있습니다 : OSX 10.6.x와 아마 더 온다 그것은 루비와 함께 작동 https://github.com/artm/vision-ui-skeleton/blob/master/cmake/QArtmRelease.cmake

: https://github.com/artm/vision-ui-skeleton/blob/master/ruby/fixup/fixup.rb

그것은 하단에 cmake에서 사용된다.