博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解决类似 /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found 的问题
阅读量:6913 次
发布时间:2019-06-27

本文共 2223 字,大约阅读时间需要 7 分钟。

解决类似 /usr/lib64/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最新版本的动态库替换系统中老版本的动态库即可解决。

1. 问题原因分析

为了安装最新版本的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 /usr/lib64/libstdc++.so.6 | grep GLIBC

输出结果如下:

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

从以上输出可以看出,gcc的动态库还是旧版本的。说明出现这些问题,是因为升级gcc时,生成的动态库没有替换老版本gcc的动态库。

2. 问题处理

执行以下命令,查找编译gcc时生成的最新动态库:

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

输出如下:

/home/gcc-5.2.0/gcc-temp/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so/home/gcc-5.2.0/gcc-temp/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6/home/gcc-5.2.0/gcc-temp/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.21  //最新动态库……/home/gcc-5.2.0/gcc-temp是升级gcc时的输出目录。

将上面的最新动态库libstdc++.so.6.0.21复制到/usr/lib64目录下:

cp /home/gcc-5.2.0/gcc-temp/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.21 /usr/lib64

复制后,修改系统默认动态库的指向,即:重建默认库的软连接。

切换工作目录至/usr/lib64:

cd /usr/lib64

删除原来软连接:

rm -rf libstdc++.so.6

将默认库的软连接指向最新动态库:

ln -s libstdc++.so.6.0.21 libstdc++.so.6

默认动态库升级完成。重新运行以下命令检查动态库:

strings /usr/lib64/libstdc++.so.6 | grep GLIBC

现在输出如下:

GLIBCXX_3.4GLIBCXX_3.4.1GLIBCXX_3.4.2GLIBCXX_3.4.3GLIBCXX_3.4.4GLIBCXX_3.4.5GLIBCXX_3.4.6GLIBCXX_3.4.7GLIBCXX_3.4.8GLIBCXX_3.4.9GLIBCXX_3.4.10GLIBCXX_3.4.11GLIBCXX_3.4.12GLIBCXX_3.4.13GLIBCXX_3.4.14GLIBCXX_3.4.15GLIBCXX_3.4.16GLIBCXX_3.4.17GLIBCXX_3.4.18GLIBCXX_3.4.19GLIBCXX_3.4.20GLIBCXX_3.4.21GLIBC_2.3GLIBC_2.2.5GLIBC_2.3.2GLIBCXX_FORCE_NEWGLIBCXX_DEBUG_MESSAGE_LENGTH

转载于:https://www.cnblogs.com/muahao/p/9078611.html

你可能感兴趣的文章
Zusy病毒爆发:不用点击 悬停PPT文件超链接上就能感染
查看>>
315曝光网络安全 安防智能硬件需格外注意
查看>>
2015年Facebook广告变现规模达10亿美金
查看>>
澳大利亚推出网安行业竞争力计划
查看>>
人类与机器人,如何能像朋友一样愉快聊天?
查看>>
2013云计算预测:攻击者馋涎云中数据
查看>>
中国最大漂浮式太阳能电站在安徽淮南落成
查看>>
关系数据库原理、数据模型
查看>>
日媒曝美的考虑收购东芝芯片业务,前者否认
查看>>
Win10杀毒软件大PK:Defender垫底 卡巴/小红伞第一
查看>>
WIFI性价比持续走高 或成物联网首选
查看>>
Linux后门入侵检测工具,附bash漏洞解决方法
查看>>
微软的这项新技术证明 深度学习还能更“深入”
查看>>
LoadRunner测试ajaxweb程序攻略
查看>>
咋办?运营商认为虚拟化难快速降低OPEX
查看>>
卧底软件:帮助公司找出“内奸”
查看>>
Loadrunner日志设置与查看
查看>>
美国两大有线电视运营商达成无线服务合作 Verizon的大麻烦来了?
查看>>
Qt之QNetworkInterface
查看>>
Sentry 8.17.0 发布,Python 实时日志平台
查看>>