You need to enable JavaScript to run this app. 在Ubuntu 20.04编译Glibc 2.25执行make命令报错的问题咨询
优惠活动
大模型
产品
解决方案
定价
更多

在Ubuntu 20.04编译Glibc 2.25执行make命令报错的问题咨询

报错信息的具体含义

该报错并非make执行源码构建逻辑时抛出的编译错误,本质是系统动态链接器加载make可执行程序时触发的依赖版本校验失败。
程序运行的实际逻辑是:make在编译构建阶段,就会在自身二进制文件中记录运行所需的glibc最低版本符号要求——本次场景中它要求libc.so.6必须能提供GLIBC_2.27版本标记的符号。如果运行时动态链接器匹配到的libc.so.6共享库不具备对应的版本标记,就会直接终止程序加载流程,抛出上述报错,make根本没有机会进入实际的源码构建执行阶段。

报错的产生原因

结合在Ubuntu 20.04上编译glibc 2.25的操作场景,问题的完整触发逻辑链条如下:

  • 基础环境特性:Ubuntu 20.04系统原生搭载的glibc版本为2.31,系统预装的make程序正是基于该版本glibc编译的,本身运行就需要GLIBC_2.27及以上的glibc符号支持,在默认系统环境下运行不会出现依赖冲突。
  • 问题触发环节:按照官方glibc构建流程操作时,在配置编译参数或执行命令的过程中,不当调整了动态链接器的库搜索优先级,将正在编译的glibc 2.25对应的共享库目录,设置为优先于系统原生glibc目录的搜索路径。
  • 最终触发过程:当后续执行make构建命令时,动态链接器优先匹配到的不是系统原生的2.31版本libc.so.6,而是正在编译的、版本仅为2.25的低版本glibc库。由于2.25版本的glibc远早于2.27版本的发布时间,自然不可能提供make程序需要的对应符号,最终触发版本不匹配的报错。

内容的提问来源于stack exchange,提问作者Parth Pratim Chatterjee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.31 08:06:09