3

我使用 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)

所以我希望能够在部署阶段直接做,有可能吗?

4

1 回答 1

2

我使用 DeployQt4 和 BundleUtilities 有一段时间了,直到我遇到了一个问题,根据其中一位作者的说法,这个问题不容易解决。

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

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

它从 cmake 底部使用:https ://github.com/artm/vision-ui-skeleton/blob/master/cmake/QArtmRelease.cmake

它适用于 OSX 10.6.x 以及可能更高版本附带的 ruby​​。

于 2012-09-07T18:51:19.027 回答