【发布时间】:2010-01-30 02:35:21
【问题描述】:
部署 QT 应用程序的最佳方式是什么?我已经阅读了 trolltech 托管的文档,但是与静态库或动态库链接并让用户安装框架更好吗?我真的不希望任何使用我的应用程序的人都必须下载一个 160mb 的框架来运行一个简单的 gui 前端。
【问题讨论】:
标签: qt deployment static-libraries dynamic-linking
部署 QT 应用程序的最佳方式是什么?我已经阅读了 trolltech 托管的文档,但是与静态库或动态库链接并让用户安装框架更好吗?我真的不希望任何使用我的应用程序的人都必须下载一个 160mb 的框架来运行一个简单的 gui 前端。
【问题讨论】:
标签: qt deployment static-libraries dynamic-linking
在 OS X 上,这是使用 Qt 从 4.5 开始附带的 macdeployqt 工具进行动态构建和后处理生成的“.app”的好方法。
这会将您的应用程序使用的 Qt 框架复制到应用程序包中,这会产生比构建应用程序的静态版本更大的包。
您可以执行以下操作以确保在动态构建中获得最小的文件大小:
QT += core gui network xml 行中)。macdeployqt 自动编译所有其中的 Qt 插件,这可能有点笨重。除此之外,您应该使用压缩磁盘映像来部署您的应用程序。
我的一个项目使用 QtGui、QtNetwork、QtCore 和 QtXml,生成的包大约是 16 MB 大小。
希望对您有所帮助。
【讨论】:
不幸的是,您必须将所需的 Qt 库包含在自己的包中,因为您不能期望您的用户在 Mac 上安装 Qt(而在 Linux 打包系统上,您至少需要给定版本的 Qt。
有一个很好的工具可以帮助你解决这个问题,它叫做 macdeployqt。您只需要在您的捆绑应用程序上调用它,它就会打包所需的库,更改二进制文件的链接以引用它们。没有它,为 Mac 制作捆绑软件真的很痛苦(现在仍然如此,但要少得多)。
http://doc.trolltech.com/4.6/deployment-mac.html#the-mac-deployment-tool
之后,您可以像使用任何其他应用程序一样制作 .dmg 图像。 macdeployqt 中有一个选项可以构建一个基本选项。
【讨论】:
在 Linux 上,最好依赖操作系统的 Qt 副本,因为它几乎肯定已安装 - 对于 OS X,几乎所有应用程序都使用静态编译的库。
【讨论】: