【发布时间】:2015-10-27 08:38:08
【问题描述】:
我正在尝试编译一个使用 Qt 5.5 的应用程序(Qt Installer Framework),以便生成的(静态链接的)二进制文件可以在 RedHat 5 甚至 RedHat 4 等旧版 Linux 系统上运行。
我的理解是,为了生成在某些特定 Linux 发行版上运行的二进制文件,我应该在具有兼容(即足够旧)glibc 版本的系统上构建它们,而这又似乎依赖于某些 Linux 内核版本(对于系统调用等等?)。 documentation 建议配置Qt build via
$ 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 似乎也是有问题的,因为它依赖于某些仅在 RHEL6 上可用的 xcb 版本(如果我没记错的话是 1.5 或 1.7)或更新。
这让我想知道:是否可以使用 Qt 5.5 构建软件,以便将生成的二进制文件部署到较旧的 Linux 发行版(RedHat 4 和 5 在商业词汇中仍然有些流行)?如果是这样,我是否可能需要使用一些特定的标志等配置 Qt?对于它的价值,我不需要大部分 Qt 功能。只有核心、小部件和 QML(用于脚本),但没有 WebKit 或 SQL。
【问题讨论】:
标签: linux qt deployment qt5