在OS X和linux上部署QT应用程序
部署QT应用程序的最佳方式是什么?我已经阅读了trolltech托管的文档,但是与静态库或动态库链接并让用户安装框架更好吗?我真的不希望任何使用我的应用程序的人为了运行一个简单的gui前端而不得不下载一个160mb的框架。在Linux上,最好依靠操作系统的Qt副本,因为它几乎肯定是安装在OS X上的,几乎所有应用程序都使用静态编译库。不幸的是,您必须将所需的Qt库包含在自己的捆绑包中,因为您不能期望您的用户在Mac上安装Qt(而在Linux打包系统上,您至少需要给定版本的Qt) 有一个很好的工具可以帮助您实现这一点,称为macdeployqt。您只需要在捆绑应用程序上调用它,它就会打包所需的库,更改二进制文件的链接以引用它们。没有它,为Mac制作捆绑包是一件非常痛苦的事情(现在仍然如此,但要少得多)在OS X和linux上部署QT应用程序,qt,deployment,static-libraries,dynamic-linking,Qt,Deployment,Static Libraries,Dynamic Linking,部署QT应用程序的最佳方式是什么?我已经阅读了trolltech托管的文档,但是与静态库或动态库链接并让用户安装框架更好吗?我真的不希望任何使用我的应用程序的人为了运行一个简单的gui前端而不得不下载一个160mb的框架。在Linux上,最好依靠操作系统的Qt副本,因为它几乎肯定是安装在OS X上的,几乎所有应用程序都使用静态编译库。不幸的是,您必须将所需的Qt库包含在自己的捆绑包中,因为您不能期望您的用户在Mac上安装Qt(而在Linux打包系统上,您至少需要给定版本的Qt) 有一个很好的工具
之后,您可以像使用任何其他应用程序一样创建.dmg图像。macdeployqt中有一个选项可以创建一个基本图像。在OS X上,使用从4.5开始的Qt附带的
macdeployqt
工具进行动态生成并对生成的“.app”进行后期处理是一种很好的方法
这将把应用程序使用的Qt框架复制到应用程序包中,这将产生一个比构建应用程序静态版本更大的包
以下是如何确保在动态生成中获得尽可能最小的文件大小:
- 首先,确保只包含所需的内容(在project.pro文件的
行中)QT+=coregui网络xml
- 打开应用程序捆绑包并从捆绑包中删除任何不需要的“Qt插件”。
自动整合其中的所有Qt插件,这可能有点笨重macdeployqt
- 确保您是在发布模式下构建应用程序。否则,您的应用程序可能会链接到Qt4框架的调试库,并且它们非常大(例如,调试库的容量远远超过90 MB,而没有调试符号的版本变体的容量为16 MB).你的情况可能就是这样
- 如果您有一个大的应用程序二进制文件,您可以使用它将可执行文件压缩40-50%
希望这能有所帮助。我不同意,Mac OS X上的大多数应用程序都在应用程序中包含框架bundle@Kamil没错——不过,尝试在系统范围内安装框架不是一个好主意;只是Windows/Linux方式之间的差异