ImportError: /usr/local/XXX/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found

平台ubuntu matlab2016b

现象

ImportError: /usr/local/XXXXXXX/R2016b/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.21’ not found

  源码编译升级安装了gcc后,编译程序或运行其它程序时,有时会出现类似/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21’ not found的问题。这是因为升级gcc时,生成的动态库没有替换老版本gcc的动态库导致的,将gcc最新版本的动态库替换系统中老版本的动态库即可解决。

  为了安装最新版本的Node.js(最新版本的Node.js使用了C++ 11中,而C++ 11需要code>gcc 4.8+才能支持),将gcc升级到了当前最新版本v 5.2.0。升级后,成功编译安装了新版本的Node.js(v 4.2.1),但运行时程序时出现了以下错误:

  • node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21’ not found (required by node)
  • node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15’ not found (required by node)
  • node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20’ not found (required by node)

查找问题

进入报错的了路径,再输入strings ./libstdc++.so.6 | grep GLIBC

cd /usr/local/MATLAB/R2016b/sys/os/glnxa64
strings ./libstdc++.so.6 | grep GLIBC

查看当前的gcc版本
在这里插入图片描述
可以看到最新的版本是GLIBCXX_3.4.20,但是报错是“ImportError: /usr/local/XXXXXXX/R2016b/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.21’ not found”,试图载入3.4.21,肯定会报错。
根据报错的提示,在终端输入

find / -name "libstdc++.so*"

用来查找编译gcc时生成的最新动态库:
在这里插入图片描述
这里面会有多个libstdc++.so.6.0.26 说明这个就是最新的动态库,下面把这个动态库拷贝到报错说找不到文件的地方去。

cp /home/chaoren/anaconda3/lib/libstdc++.so.6.0.26 /usr/local/MATLAB/R2016b/sys/os/glnxa64

会有权限报错

cp: cannot create regular file '/usr/local/MATLAB/R2016b/sys/os/glnxa64/libstdc++.so.6.0.26': Permission denied

所以需要开始root权限

sudo su - 
cp /home/chaoren/anaconda3/lib/libstdc++.so.6.0.26 /usr/local/MATLAB/R2016b/sys/os/glnxa64

复制完成后用下面命令测试发现还是没有更新

cd /usr/local/MATLAB/R2016b/sys/os/glnxa64
strings ./libstdc++.so.6 | grep GLIBC

确实不会更新,因为我们的操作还没有完成,刚才仅仅是复制了文件,还需要修改系统默认动态库的指向,即:重建默认库的软连接。
切换目录并进行软连接:

cd /usr/local/MATLAB/R2016b/sys/os/glnxa64
rm -rf libstdc++.so.6
ln -s libstdc++.so.6.0.26 libstdc++.so.6

至此,操作完成,使用下列代码查验:

cd /usr/local/MATLAB/R2016b/sys/os/glnxa64
strings ./libstdc++.so.6 | grep GLIBC

结果显示:
在这里插入图片描述
更新成功,不报错了。

参考链接

https://www.linuxidc.com/Linux/2017-10/147621.htm

https://www.gitmemory.com/issue/tensorflow/tensorflow/32111/526751353

https://blog.csdn.net/m0_37222746/article/details/88971805

https://my.oschina.net/u/2245781/blog/1821569

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值