在 Linux 上部署 Qt 应用程序二进制文件,与 LSB 兼容

Dib*_*tta 5 linux qt

我在 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,然后运行新编译的应用程序(如果不存在),以便用户只需运行一个脚本即可运行该程序。

NeX*_*XuS 2

这里您的问题不是 Linux 标准库,而是您需要的 Qt 特定版本(或更高版本)是否存在。

就像在 Windows 计算机上一样,用户可能安装了任何 Qt,也可能根本没有安装。在 Windows 上,检查特定版本的 Qt 是否存在比在 Linux 上更容易,因此更容易编写自动化体验的安装工具。

要解决您的问题,有以下几种方法:

  1. 通知用户你的程序需要特定版本的Qt或更高版本,并让用户处理问题
  2. 了解如何为您想要定位的每个发行版创建包并创建特定的包
  3. 使用 0Install 或 Elf Statifier 等程序创建包含所有必要库的包/可执行文件。

后者与许多 Windows 和 Mac 程序的做法类似(它们在安装程序中包含所需的每个库),但它不是 Linux 上的首选方式,因为 Linux 严重依赖共享库。