如何在OSX上的.app项目中包含CMt的Qt库?

时间:2012-09-07 12:02:41

标签: macos qt deployment cmake macdeployqt

我使用CMake作为构建系统创建了一个Qt项目。我想在部署阶段包括必要的Qt框架

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

为了准备好将我的程序作为独立的dmg分发。

这通常使用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)

所以我希望能够在部署阶段直接进行,是否可能?

1 个答案:

答案 0 :(得分:2)

我使用DeployQt4和BundleUtilities已经有一段时间了,直到我遇到问题并不容易解决according to one of the authors

我最终编写了一个ruby脚本,它完成了BundleUtilities所做的事情。我的脚本目前与BundleUtilities相比有一个限制 - 它不处理具有多个可执行文件的bundle。在cmake中编写相同的功能超出了我的受虐狂程度(我设法了解BundleUtilities的作用和方式,但是他们必须用来组织内存中的数据的装置感到震惊)。

脚本本身可在此处获取:https://github.com/artm/vision-ui-skeleton/blob/master/ruby/fixup/fixup.rb

https://github.com/artm/vision-ui-skeleton/blob/master/cmake/QArtmRelease.cmake

的底部使用cmake

它适用于OSX 10.6.x附带的ruby,可能更高。