我使用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)
所以我希望能够在部署阶段直接进行,是否可能?
答案 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,可能更高。