libstdc++.so.6: version `GLIBCXX_3.4.20' not found
参考链接:
(1)解决/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found的问题方法总结。
(2)/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found问题解决方法。
一、错误发生情景:
启动xunsearch时,执行./xs-ctl.sh start命令,报如下错误:
... /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found ...
二、错误原因:
编译GCC源码升级GCC版本后出现的该问题, 这是由于GCC升级后标准库还是旧的导致的。
三、解决:
更新标准库:
1、进入到安装的新的GCC的目录中:cd /usr/local/gcc-8.3.0
2、进入到库目录:cd lib64 (注意:系统如果是64位的就进入到lib64目录,否则进入到lib目录)
3、查看当前库的最搭版本:ls,结果看到:libstdc++.so.6.0.25
4、复制到系统默认的库目录下:
cp libstdc++.so.6.0.25 /usr/lib64/ (注意:系统如果是32:cp libstdc++.so.6.0.25 /usr/lib/)
5、进入到/usr/lib64下,查看相关的版本信息:
ls -l | grep libstdc++
结果:
... libstdc++.so.6 -> libstdc++.so.6.0.13
... libstdc++.so.6.0.13
... libstdc++.so.6.0.25
6、删除旧的软连接:
rm -f libstdc++.so.6
7、建立新的软连接:
ln -s libstdc++.so.6.0.25 libstdc++.so.6
8、查看标准库最新的版本:
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
GLIBCXX_3.4 GLIBCXX_3.4.1 . . . GLIBCXX_3.4.24 GLIBCXX_3.4.25 GLIBCXX_FORCE_NEW GLIBCXX_DEBUG_MESSAGE_LENGTH