我在 Ubuntu 12.04 上的 Qt Creator 中开发了一个小应用程序,我希望它可以在任何其他 linux 发行版(主要是 CentOS 和 ubuntu 的不同版本)上运行,就像 Windows 上的任何便携式应用程序一样。
我希望能够简单地共享应用程序的二进制文件,并运行该应用程序。我能够在 Windows 中成功地做到这一点,只需在 QT Creator 中构建项目,然后将所需的库放在 Application 目录中,然后将它们传输到其他 Windows 系统。
我到处搜索,发现我应该尝试使用 LSB(Linux 标准基础)兼容性来构建项目,以便它可以在其他 linux 发行版上运行。这是正确的方法吗?
我对 Qt 和 Linux 都很陌生(不太了解 Shell 脚本)。因此,我不知道我应该如何继续使应用程序符合 LSB。
我已经参考了以下链接: 在 Linux 上分发基于 Qt 的二进制文件和 在 Linux 上部署 Qt 应用程序,但一直无法理解我要做什么。
我也在这里发现了这个问题,它说明了与我的情况非常相似的情况,但是因为我是新手,我不知道该怎么做。
而且,考虑到前两篇文章是6年前写的,现在难道不应该有更简单的方法在linux平台上部署Qt应用程序吗?我还看到了一些关于静态链接的内容,这是要走的路吗?难道没有一种方法可以通过 Qt Creator 本身完成所有这些工作吗?
如果没有希望为 Linux 创建一个可移植的 Qt 应用程序,那么有没有办法,比如一个 shell 脚本或其他东西,可以结合在另一台计算机上编译 Qt 项目并运行它所需的所有步骤。比如说,如果不存在,请下载 Qt-SDK,运行 qmake 和 make,然后运行新编译的应用程序(如果不存在),以便用户只需运行一个脚本即可运行该程序。
这里您的问题不是 Linux 标准库,而是您需要的 Qt 特定版本(或更高版本)是否存在。
就像在 Windows 计算机上一样,用户可能安装了任何 Qt,也可能根本没有安装。在 Windows 上,检查特定版本的 Qt 是否存在比在 Linux 上更容易,因此更容易编写自动化体验的安装工具。
要解决您的问题,有以下几种方法:
后者与许多 Windows 和 Mac 程序的做法类似(它们在安装程序中包含所需的每个库),但它不是 Linux 上的首选方式,因为 Linux 严重依赖共享库。