解决/libc.so.6: version `GLIBC_2.17' not found和/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21'not

本次作为一个成功解决的记录:

/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21’not found

从各方网站查询可得:
strings /lib64/libstdc++.so.6 | grep GLIBC查看C++版本

GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH

说明gcc的动态库还是老版的,需进行升级。
**解决方法一:**下载gcc的高版本重新编译安装
**解决方法二:**只下载一个已经编译好的动态库libstdc++.so.6.0.21

//将该文件拷贝到指定位置
cp libstdc++.so.6.0.21 /lib64
//删除原来的动态库
cd /lib64
rm -rf libstdc++.so.6
//建立新的软连接
ln -s libstdc++.so.6.0.21 libstdc++.so.6
//再次查看
strings /lib64/libstdc++.so.6 | grep GLIBC
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBC_2.3
GLIBC_2.2.5
GLIBC_2.3.2
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH

/libc.so.6: version `GLIBC_2.17’ not found

查询版本:

[root@localhost build]# strings /lib64/libc.so.6 |grep GLIBC
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_PRIVATE

可见,确实版本不足。
解决方法一:

  1. glibc下载
    从http://www.gnu.org/software/libc/ 下载源代码。我下载的版本是2.14,链接地址是http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz。
  2. 安装
    因为glibc库使用广泛,为了避免污染当前系统环境,最好自定义安装目录,使用时定义一下环境变量就行了。具体步骤如下:
[root@localhost ~]# tar xvf glibc-2.17.tar.gz
[root@localhost ~]# cd glibc-2.17
[root@localhost glibc-2.17]# mkdir build
[root@localhost glibc-2.17]# cd ./build
[root@localhost build]# ../configure --prefix=/opt/glibc-2.17
[root@localhost build]# make -j4
[root@localhost build]# make install
// 先删除先前的libc.so.6软链
[root@localhost build]# rm -rf /lib64/libc.so.6 			
[root@localhost build]# ln -s /opt/glibc-2.17/lib/libc-2.17.so /lib64/libc.so.6

如果上述命令建立软连接失败,尝试
LD_PRELOAD=/opt/glibc-2.17/lib/libc-2.17.so ln -s /opt/glibc-2.17/lib/libc-2.17.so /lib64/libc.so.6
如果上述更新仍然失败,先还原
$LD_PRELOAD=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so /lib64/libc.so.6 // libc-2.12.so 此项是系统升级前的版本
至此,我败了。。然后想出了第二条路径

解决方法二:
下载rpm版安装包。
rpm -ivh glibc-headers-2.17-222.el7.x86_64.rpm --nodeps --force
rpm -ivh glibc-2.17-222.el7.x86_64.rpm --nodeps --force
在这里插入图片描述
–nodeps就是安装时不检查依赖关系,比如你这个rpm需要A,但是你没装A,这样你的包就装不上,用了–nodeps你就能装上了。–force就是强制安装,比如你装过这个rpm的版本1,如果你想装这个rpm的版本2,就需要用–force强制安装

安装成功…

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值