GLIBCXX_3.4.21 not found(转载)

问题描述

CentOS安装新版本(10.2.0)的g++后,编译程序后执行出现问题如下

[root@VM-0-9-centos xltest]# ./a.out
./a.out: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./a.out)

解决办法

新版本文件在/usr/local/lib64/ 内,而查找是从/usr/lib64 先的,因此最好是将新文件拷贝到/usr/lib64 并创建软连接。

[root@VM-0-9-centos xltest]# cp /usr/local/lib64/libstdc++.so.6  /usr//lib64

问题分析

  1. 执行命令,查看libstdc++.so.6 文件确实不含3.4.21
[root@VM-0-9-centos xltest]# strings /usr/lib64/libstdc++.so.6 | grep GLIBC
GLIBCXX_3.4
GLIBCXX_3.4.1
...
GLIBCXX_3.4.19
GLIBC_2.3
GLIBC_2.2.5
GLIBC_2.14
GLIBC_2.4
GLIBC_2.3.2
GLIBCXX_DEBUG_MESSAGE_LENGTH
  1. 查找一下系统中安装的相关库
[root@VM-0-9-centos xltest]# find / -name "libstdc++.so.6*"
...
/usr/local/lib64/libstdc++.so.6
/usr/local/lib64/libstdc++.so.6.0.28-gdb.py
/usr/local/lib64/libstdc++.so.6.0.28
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyc
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.py
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyo
/usr/lib64/libstdc++.so.6
/usr/lib64/libstdc++.so.6.0.19

试着看一下哪个libstdc++.so.6.0.28 中包含 GLIBCXX_3.4.21

[root@VM-0-9-centos xltest]# strings /usr/local/lib64/libstdc++.so.6 | grep GLIBCXX
...
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_3.4.23
GLIBCXX_3.4.24
GLIBCXX_3.4.25
GLIBCXX_3.4.26
GLIBCXX_3.4.27
GLIBCXX_3.4.28
GLIBCXX_DEBUG_MESSAGE_LENGTH
_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv@GLIBCXX_3.4
_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEv@@GLIBCXX_3.4.5
_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@GLIBCXX_3.4
...
  1. 好的找到了,做拷贝和替换
[root@VM-0-9-centos xltest]# cp /usr/local/lib64/libstdc++.so.6  /usr//lib64    
cp: overwrite ‘/usr//lib64/libstdc++.so.6’? y

可以了。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值