4

部署 QT 应用程序的最佳方式是什么?我已经阅读了 trolltech 托管的文档,但是与静态库或动态库链接并让用户安装框架更好吗?我真的不希望任何使用我的应用程序的人都必须下载一个 160mb 的框架来运行一个简单的 gui 前端。

4

3 回答 3

4

macdeployqt在 OS X 上,这是使用 Qt 从 4.5 开始附带的工具进行动态构建和后处理生成的“.app”的好方法。

这会将您的应用程序使用的 Qt 框架复制到应用程序包中,这会产生比构建应用程序的静态版本更大的包。

您可以执行以下操作以确保在动态构建中获得最小的文件大小:

  • 首先,确保您只包含您需要的东西(在 project.pro 文件的QT += core gui network xml行中)。
  • 打开应用程序包并从包中删除任何不需要的“Qt 插件”。macdeployqt自动编译那里的所有Qt 插件,这可能有点笨重。
  • 确保您在发布模式下构建应用程序。否则,您的应用程序可能会链接到 Qt4 框架的调试库,并且它们确实很大(例如,调试库超过 90 MB,而没有调试符号的发布变体则为 16 MB)。这可能就是您的情况。
  • 如果您有一个大型应用程序二进制文件,您可以使用UPX将您的可执行文件压缩 40-50%。

除此之外,您应该使用压缩磁盘映像来部署您的应用程序。

我的一个项目使用QtGuiQtNetworkQtCoreQtXml,生成的包大小约为 16 MB。

希望有帮助。

于 2010-01-31T11:09:48.683 回答
2

在 Linux 上,最好依赖操作系统的 Qt 副本,因为它几乎肯定已安装 - 对于 OS X,几乎所有应用程序都使用静态编译的库。

于 2010-01-30T02:37:02.310 回答
2

不幸的是,您必须将所需的 Qt 库包含在自己的包中,因为您不能期望您的用户在 Mac 上安装 Qt(而在 Linux 打包系统上,您至少需要给定版本的 Qt。

有一个很好的工具可以帮助你解决这个问题,它叫做 macdeployqt。您只需要在您的捆绑应用程序上调用它,它就会打包所需的库,更改二进制文件的链接以引用它们。没有它,为 Mac 制作捆绑软件真的很痛苦(现在仍然如此,但要少得多)。

http://doc.trolltech.com/4.6/deployment-mac.html#the-mac-deployment-tool

之后,您可以像使用任何其他应用程序一样制作 .dmg 图像。macdeployqt 中有一个选项可以构建一个基本选项。

于 2010-01-31T10:47:12.327 回答