gpt4 book ai didi

c++ - 基于 X.XX 版内核构建的 C++ Linux 应用程序能否在早期版本上运行?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:58:49 25 4
gpt4 key购买 nike

这个问题可能看起来非常明显,我意识到我让自己承受了大量的反对票,但我对 Linux 开发还很陌生,并且只研究了一段时间。

我一直在使用 C++ 在 ubuntu 12.04(内核 3.2.0)上编写应用程序,然后通过 scp 将其复制到另一台设备上的 ubuntu 8.04(内核 2.6.30)安装。我一直注意到一些我无法解释的非常奇怪的行为。我曾天真地假设我可以在以前的版本上运行这个可执行文件,但我开始明白事实可能并非如此。将来我必须确保我构建应用程序的 Linux 版本与它在现场运行的版本相同吗?或者我必须直接在将要运行的设备上从源代码实际构建应用程序吗???我是 Linux 开发人员的新手,但对 C++ 并不陌生,所以我意识到这个问题可能看起来很简单,但这是我在书籍/教程等中根本没有见过的问题。

最佳答案

大多数时候,阻止你的不是内核,而是 glibc。

glibc 是向后兼容的,这意味着编译并链接到旧版本的程序在运行时将与新版本完全相同。反过来就不那么兼容了。

最好的当然是建立在你想要运行它的发行版上。如果您做不到,请在安装最旧的 glibc 的基础上构建。

构建和链接到比系统 glibc 更旧的 glibc 也非常困难,安装/构建 glibc 往往会使您的系统变得困惑,而不是它的值(value)。使用旧 Linux 设置 VM,然后改用它。

关于c++ - 基于 X.XX 版内核构建的 C++ Linux 应用程序能否在早期版本上运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11014215/

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