解决version `GLIBC_2.14' not found问题

孤人 提交于 2020-03-12 09:28:29

原因分析

由于Linux系统的glibc版本太低,而软件编译时使用了较高版本的glibc引起

什么是GLIBC

glibc是GNU发布的libc库,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。由于 glibc 囊括了几乎所有的 UNIX 通行的标准,可以想见其内容包罗万象。而就像其他的 UNIX 系统一样,其内含的档案群分散于系统的树状目录结构中,像一个支架一般撑起整个操作系统。在 GNU/Linux 系统中,其C函式库发展史点出了GNU/Linux 演进的几个重要里程碑,用 glibc 作为系统的C函式库,是GNU/Linux演进的一个重要里程碑。参考:https://baike.baidu.com/item/glibc?fr=aladdin

解决方案

第一步:查看下当前系统支持的glibc的版本

strings /lib64/libc.so.6 |grep GLIBC_

第二步:根据上面的glibc的定义可知,升级影响还是很大的。所以,看下是否真的需要升级,也就是要安装的软件可否使用低版本上编译生成的,或者采用docker等容器技术绕开的方案

最后,不得不升级,采用如下方式:

$ tar -xzvf glibc-2.14.tar.gz
$ mkdir build   // 在glibc-2.14目录下建立build文件夹
$ cd build      // 进入build目录
$ ../configure --prefix=/opt/glibc-2.14 // 配置glibc并设置当前glibc-2.14安装目录
$ make && make install      // 编译安装glibc-2.14库
# 建立软连接
$ rm -rf /lib64/libc.so.6           // 先删除先前的libc.so.6软链
$ ln -s /opt/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6

安装过程参考:https://www.jianshu.com/p/e68463ed5c6a

参考

https://blog.csdn.net/sole_cc/article/details/51415940

https://blog.csdn.net/cpplang/article/details/8462768

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!