You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04安装build-essential后为何未包含libm-2.x.so共享库?

Ubuntu 22.04安装build-essential后为何未包含libm-2.x.so共享库?

嘿,这个问题确实有点让人疑惑,我来给你拆解清楚~

首先,这个变化是故意的,根源在于Ubuntu 22.04使用的glibc 2.35版本做了一个重要调整:从glibc 2.34开始,libm(数学库)的共享库实现已经和libc(C标准库)合并了,不再单独提供libm-2.x.so这样的独立共享库文件。

你观察到的现象完全符合这个变更:

  • 在Ubuntu 20.04(用glibc 2.31)里,libm还是独立的共享库,所以能找到libm-2.31.so;
  • 到了22.04,只有静态库libm-2.35.a保留着,而共享库的功能已经整合到libc.so.6里了。

接下来回答你几个具体问题:

  • 是不是不再支持这个版本?:不是哦,libm的所有数学函数功能都还在,只是不再以单独的共享库形式存在。你平时编译时用-lm参数链接libm,编译器依然能正确找到对应的代码(因为它知道现在这些功能在libc里),完全不影响使用。
  • 能不能通过apt直接安装libm-2.x.so?:不行的,因为Ubuntu 22.04的软件源里已经没有单独提供这个共享库的包了——既然glibc已经把它整合进去,就没必要再单独分发了。

另外,你最后选择用libm.so.6是非常正确的做法!因为libm.so.6是系统的标准符号链接,在22.04里它其实指向的是libc.so.6,完全能满足你对数学库的需求,不需要纠结找不到单独的libm-2.x.so文件。

你可以在Docker里验证一下这个链接关系,比如修改你的Dockerfile的CMD为:

ls -l /usr/lib/x86_64-linux-gnu/libm.so.6

运行后会看到类似这样的输出:

lrwxrwxrwx 1 root root 12 Apr  4  2023 libm.so.6 -> libc.so.6

备注:内容来源于stack exchange,提问作者Nick

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 13:13:08