Qt程序部署到多平台,如何?

Posted

技术标签:

【中文标题】Qt程序部署到多平台,如何?【英文标题】:Qt Program deploy to multi platform, how? 【发布时间】:2010-03-09 07:35:07 【问题描述】:

我是 Qt 编程新手,我想开发一个我想在 Windows、Linux(ubuntu) 和 Mac 上运行的程序。

听说Qt支持多平台应用开发,

但我的问题是,

在我部署或编译后,是否有任何 Qt 库需要在 Ubuntu 中运行这些应用程序?

【问题讨论】:

【参考方案1】:

如果您在 Ubuntu 上部署,因此使用 .deb 包,那么您的工作很容易,因为您只需要 qt 作为依赖项,apt 会根据需要自动安装它。

然而,Windows 和 Mac 没有任何“好的”软件管理层,因此您别无选择,只能在二进制文件中包含所需的 Qt DLL 或编译静态的。在 Windows 上,您只需确保 DLL 与您的程序位于同一目录中。但是,Mac 需要进行一些重新链接。这是一个很大的痛苦,但幸运的是 Qt 附带了一个名为 macdeployqt 的工具,它可以为您完成这项工作。

所以根据我的经验,Linux 是最容易部署的平台,其次是 Windows,Mac 是最后一个。

上面给出的 Qt 部署文档的链接是一个很好的起点。如果您需要一个示例,我已经编写了几个脚本来构建我的程序的 Windows 二进制文件。您可以查看这些以开始使用。

Windows 安装程序:http://gitorious.org/tagaini-jisho/tagaini-jisho/blobs/master/pack/win32-cross/buildwin32releases.shhttp://gitorious.org/tagaini-jisho/tagaini-jisho/blobs/master/pack/win32-cross/tagainijisho.nsi

【讨论】:

Windows 上的一个小问题是 .dll 通常必须使用与您的应用程序相同的编译器进行编译,因此您可能希望分发自己的副本。 对于mac,需要在MAC机器上编译吗?如果您在 Windows 开发机器上并想部署到 Mac 怎么办?【参考方案2】:

在这里谈到 Linux 方面,如果您将应用程序分发为包(deb、rpm),那么您可以使用包依赖项规则。如果您正确定义了这些规则,那么包管理器将安装您在安装应用程序时需要的 Qt 库。

【讨论】:

以上是关于Qt程序部署到多平台,如何?的主要内容,如果未能解决你的问题,请参考以下文章

Qt 5.3.1 应用程序错误:无法找到或加载 Qt 平台插件“windows”

在 Mac 和 Windows 上部署 Qt+Boost 应用程序

Qt 程序在 Windows 下的发布

Qt 5 应用程序的平面目录部署?

如何高效地构建 QT 应用程序?

如何在android平台上部署java fx应用程序[重复]