gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:48:30 26 4
gpt4 key购买 nike

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

我不完全确定如何实现这一目标; Qt docs page通常建议静态链接所有内容,但这并不是大多数其他来源所说的(据我所知,静态链接 glibc 是个坏主意)。在任何情况下,我都不能真正地静态链接所有内容,因为 GCC 提示说在静态链接的应用程序中使用“getaddrinfo”需要在运行时使用来自 glibc 版本的共享库用于链接据我所知,这不是一个可以简单忽略的警告。我厌倦了仅针对 libgcclibstdc++ 进行静态链接,我复制了其他缺少的库 - libXau.so.6libXdmcp .so.6libxcb.so.1 在干净的 CentOS 7 安装上并尝试在那里运行程序,但这给了我一个段错误;可能是因为系统是 64 位的,而不是我编译应用程序的平台?

  • 如何以最常见配置可运行的形式分发应用程序?静态链接不是问题,因为无论如何都会发布源代码。
  • 静态链接还是动态链接 Qt 更好(如果优先考虑最大的二进制可移植性)?
  • 我是否需要提供两个单独版本的二进制文件(32 位和 64 位),还是 32 位版本就足够了?

最佳答案

我的建议是提供两种构建:一种不受支持的完全静态构建,可以“随处”使用,但带有星号表示如果它是商业产品则您无法支持它。人们会尝试在他们的冰箱上运行它,我没有骗你。官方支持的构建必须仅适用于特定平台,并且您必须拥有运行这些平台的 VM/测试目标,以及您构建和测试的位置。

关于c++ - 在多个 Linux 发行版上部署 Qt 5.5.1 C++ 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34363060/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com