gpt4 book ai didi

qt - 部署静态链接的 Qt 应用程序向后兼容性

转载 作者:行者123 更新时间:2023-12-04 18:46:24 26 4
gpt4 key购买 nike

这是我第一次尝试让 Qt 应用程序在不同的系统上工作。

我选择了静态链接方法。我已经编译了 Qt 5.5 的源代码并使用静态 Qt 编译了我的应用程序。该可执行文件在我的计算机上运行良好。
我的操作系统是 Ubuntu 15.04。但是当我尝试在 Ubuntu 14.04 上运行相同的可执行文件时,我遇到了麻烦。错误消息的关键细节如下所示。

libstdc++.so.6 cxxabi_1.3.8 not found



我做了一个标准的谷歌搜索并意识到这是因为我的机器上有一个更新版本的它,我创建可执行文件的机器。有很多不同的方法来处理这个问题。我看到的解决方案之一是运送您自己的 libstdc++.so 副本。与可执行文件。但是当我尝试将 .so 文件复制到笔式驱动器时,出现警告说文件系统不支持此类文件。

我的问题是,我做错了什么?此外,如果我想让可执行文件以 Ubuntu 10.04 为目标,那么处理向后兼容性问题的正确程序是什么。我知道一种方法是在我的机器上安装相同的操作系统,然后创建可执行文件,还有其他方法吗?

最佳答案

libstd++ 向后兼容但不向前兼容,这意味着您可以使用比您编译它的版本更新的 libstdc++ 版本运行程序,但反之则不行。这就是你所经历的。

处理此问题的一种方法是使用较旧的操作系统版本作为构建机器。例如,当您使用 Ubuntu 14.04 LTS 时,您将获得 this list of compatible target systems .

您使用的构建系统可能会限制可用的编译器。在 Ubuntu 14.04 上,您将获得 GCC 4.8,它适用于大多数 C++11,并且可以使用 clang 3.6 的软件包,这将为您提供完整的 C++14 支持。

如果您不想使用石器时代的编译器,那么以 Ubuntu 10.04 为目标将具有挑战性。

发布 libstdc++ 的想法对您没有多大帮助,因为您会遇到与 libc 相同的问题。

关于qt - 部署静态链接的 Qt 应用程序向后兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36605691/

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