linux - 如何为旧的 Linux 发行版构建应用程序,并避免 fatal error : kernel too old error?

标签 linux linux-kernel static-libraries glibc

我在 Linux 上分发我的应用程序的静态链接二进制版本。但是,在具有 2.4 内核的系统上,我在启动时遇到段错误,并显示消息:“致命:内核太旧。”

我怎样才能轻松地启动并运行 2.4 内核的版本?我需要的一些库在大约 2003 年的旧 Linux 发行版上什至不可用。是否有 apt-get 安装或其他东西可以让我轻松地针对旧内核?

最佳答案

最简单的方法是简单地安装VirtualBox (或类似的东西,例如 VMWare),安装 CentOS 3或具有 2.4 内核的任何合适的旧发行版,并在其上构建/测试您的应用程序。

由于您获得的“内核太旧”,您可能依赖于 2.4 内核中不存在的某些功能,因此您必须追查并重新处理它。 该错误可能只是由静态链接到 glibc 引起的,您可以尝试动态链接到 glibc 并静态链接到所有其他库,但要向后兼容,您必须在旧的 glibv 系统上构建您的应用程序。使用 lsb构建工具也有帮助

关于linux - 如何为旧的 Linux 发行版构建应用程序,并避免 fatal error : kernel too old error?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2079717/

相关文章:

c - 带结构体参数的Linux内核系统调用实现

c++ - 为什么启动项目不执行依赖项目

Linux tar 具有模式匹配和删除前导路径

linux - 如何使用 shell 脚本检查 2 台机器中的文件夹?

c - 读取写入管道的信息后无法退出 while 循环

dll - 配置脚本不启用 make 生成共享库

ios - Delphi可以为iOS创建静态库吗?

c - 何时应绑定(bind)客户端套接字以便从服务器接收 UDP 消息?

python - 有没有办法在 Python 中设置线程的标题/名称?

linux - Linux 将 'ruid' 和 'euid' 保存在哪里?