2012-09-07 155 views
3

我創建了一個使用CMake作爲構建系統的Qt項目。我想在部署階段包括必要的Qt爲了準備我的程序分發作爲獨立的DMG構架如何在OSX的.app項目中使用CMake包含Qt庫?

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 .app/Contents/share/cmake-2.8/Modules/BundleUtilities.cmake:784(message): 錯誤:verify_app失敗 調用堆棧(最近呼叫優先): /Applications/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

我最終編寫了一個ruby腳本來做BundleUtilities的功能來排除這個問題。我的腳本目前與BundleUtilities相比有一個限制 - 它不處理包含多個可執行文件的包。在cmake中寫入相同的功能超出了我的受虐程度(我設法理解BundleUtilities的作用和方式,但是他們不得不用它來組織數據在內存中的配置)。

腳本本身可以在這裏找到:https://github.com/artm/vision-ui-skeleton/blob/master/cmake/QArtmRelease.cmake

它與紅寶石自帶的OSX 10.6.x的,可能更高:https://github.com/artm/vision-ui-skeleton/blob/master/ruby/fixup/fixup.rb

它是由cmake的在底部使用。

相關問題