在多个 Linux 发行版上部署 Qt 5.5.1 C++ 应用程序

Deploying a Qt 5.5.1 C++ application on multiple Linux distributions

我有一个用纯 C++ 和 Qt 5.5.1 编写的应用程序。它在 GCC (Lubuntu 15.10 x86) 和 MSVC 14.0 (Windows 8.1 x64) 中编译良好,并且在这两个平台上都能正常工作。我现在想分发它,以便它可以 运行 在其他 Linux 发行版上,而无需在那里重新编译它们。

我不太确定如何做到这一点; Qt docs page 通常静态地建议 link 一切,但这不是大多数其他消息来源所说的(据我所知,静态地 link 和 glibc 是一个坏主意) .在任何情况下,我都不能真正 link everything 静态,因为 GCC 抱怨 Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking 并且据我所知,这不是一个可以简单忽略的警告。我已经厌倦了仅针对 libgcclibstdc++ 进行静态 link,我复制了其他缺少的库 - libXau.so.6libXdmcp.so.6libxcb.so.1干净的 CentOS 7 安装并尝试 运行 那里的程序,但这给了我一个分段错误;可能是因为系统是 64 位的,而不是我编译应用程序的平台?

我的建议是提供两个版本:一个不受支持的完全静态版本,可以工作 "anywhere" 带有星号,表示如果它是商业产品,您将无法支持它。人们会尝试 运行 把它放在冰箱上,我没骗你。官方支持的构建必须仅针对 特定 平台,并且您不能没有 VMs/test 目标 运行 这些平台,以及您构建和测试的平台.