如何使用在旧 Linux 系统(例如 RedHat 4 或 RedHat 5)上运行的 Qt 5.5 构建软件?

How can I build software using Qt 5.5 which runs on old Linux systems (e.g. RedHat 4 or RedHat 5)?

我正在尝试编译一个使用 Qt 5.5 的应用程序(Qt Installer Framework),这样生成的(静态链接的)二进制文件可以在旧的 Linux 系统上运行,例如 RedHat 5 或者也许甚至 RedHat 4.

我的理解是,为了在某些特定的 Linux 发行版上生成 运行 的二进制文件,我应该在具有兼容的(即足够旧的)glibc 版本的系统上构建它们,这反过来似乎依赖于某些 Linux 内核版本(对于系统调用等等?)。 documentation 建议通过

配置 Qt 构建
$ configure -prefix $PWD/qtbase -release -static -accessibility -qt-zlib -qt-libpng -qt-libjpeg -qt-xcb -qt-pcre -qt-freetype -no-glib -no-cups -no-sql-sqlite -no-qml-debug -no-opengl -no-egl -no-xinput -no-xinput2 -no-sm -no-icu -nomake examples -nomake tests -skip qtactiveqt -skip qtenginio -skip qtlocation -skip qtmultimedia -skip qtserialport -skip qtquick1 -skip qtquickcontrols -skip qtscript -skip qtsensors -skip qtwebkit -skip qtwebsockets -skip qtxmlpatterns

唉,即使禁用了这么多 Qt 组件,在非常旧的 Linux 系统上构建 Qt 5.5 似乎也有问题,因为依赖于某些 xcb 版本(如果我记得的话是 1.5 或 1.7正确)仅在 RHEL6 或更新版本上可用。

这让我想知道:是否可以使用 Qt 5.5 构建软件,以便可以将生成的二进制文件部署到较旧的 Linux 发行版(RedHat 4 和 5 在商业领域仍然有些流行)?如果是这样,我可能需要用一些特定的标志或类似的东西来配置 Qt 吗?对于它的价值,我不需要大多数 Qt 功能。只有核心、小部件和 QML(用于脚本)但没有 WebKit 或 SQL.

您也许能够在这些系统上编译 xcb,然后使用该 xcb 库构建 Qt 并将其与您的应用程序一起发布。如果我理解正确的话:

Since the protocol is standardized, a client using any implementation of XCB may talk with any X server (the same occurs for Xlib, of course).

this XCB tutorial 开始,xcb 客户端仍将与任何 X 服务器通信,因为底层协议没有改变。但是你必须做一些实验...