/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found问题解决

Redhat上经常出现/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found的问题,原因在于libstdc++.so.6的版本过低,需要下载个新版本的lib文件重新建立软连接。 
如下所示:
linux 执行strings /usr/lib/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
GLIBC_2.0
GLIBC_2.3
GLIBC_2.4
GLIBC_2.3.4
GLIBC_2.1
GLIBC_2.1.3
GLIBC_2.2
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH
返回结果没有GLIBCXX_3.4.9,故会出现此报错。

执行ls -l  /usr/lib/libstdc++.so.6
可发现/usr/lib/libstdc++.so.6 -> /usr/lib/libstdc++.so.6.0.8,其实这里需要使用的是libstdc++.so.6.0.13。

从网上下载这个文件libstdc++.so.6.0.13,下载地址为http://down.51cto.com/data/306947(附件中也有此文件),把libstdc++.so.6.0.13这个资源放到/usr/lib文件夹下,然后删除/usr/lib/libstdc++.so.6,重新生成新的lib文件链接,执行如下命令:

ln -s /usr/lib/libstdc++.so.6.0.13 /usr/lib/libstdc++.so.6,重新测试,OK

可以输入strings /usr/lib/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
GLIBC_2.0
GLIBC_2.3
GLIBC_2.4
GLIBC_2.1
GLIBC_2.3.4
GLIBC_2.1.3
GLIBC_2.3.2
GLIBC_2.2
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH

 

参考文献:http://yytian.blog.51cto.com/535845/742637

http://yytian.blog.51cto.com/535845/742637

猜你喜欢

转载自dawnche.iteye.com/blog/1930371