解决类似 /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21’ not found 的问题
问题处理
执行以下命令,查找编译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