报错截图如下
1.报错原因分析
这个报错是libstdc++.so.6版本过低导致,解决方法为用高版本gcc源码编译出来的libstdc++来替换老版本。
源码包链接:
https://mirrors.nju.edu.cn/gnu/gcc/gcc-11.3.0/gcc-11.3.0.tar.xz
https://www.mpfr.org/mpfr-current/mpfr-4.2.1.tar.xz
https://mirrors.nju.edu.cn/gnu/gmp/gmp-6.3.0.tar.xz
https://mirrors.nju.edu.cn/gnu/mpc/mpc-1.3.1.tar.gz
2.升级步骤
编译之前检查当前gcc版本必须≥4.8.5
gcc -v
将源码包放到安装环境依次安装
gmp:
./configure --prefix=/usr/local/gmp/
make -j `nproc` && make install
mpfr:
./configure --prefix=/usr/local/mpfr/ --with-gmp=/usr/local/gmp/
make -j `nproc` && make install
mpc:
./configure --prefix=/usr/local/mpc/ --with-gmp=/usr/local/gmp/ --with-mpfr=/usr/local/mpfr/
make -j `nproc` && make install
gcc11:
./configure --prefix=/usr/local/gcc/ --with-gmp=/usr/local/gmp/ --with-mpfr=/usr/local/mpfr/ --with-mpc=/usr/local/mpc/
make -j `nproc` && make install //make install非必须当前存在其它动态指向问题,可以直接找到当前目录编译好的libstdc++.so.6.0.29再往下一步骤进行软链接)
检查是否支持GLIBCXX_3.4.20:
strings /usr/local/gcc-11.3.0/lib64/libstdc++.so.6.0.29 | grep GLIBCXX_3.4.20
// 出现GLIBCXX_3.4.20打印
创建动态库软链接
ln -sf /usr/local/gcc-11.3.0/lib64/libstdc++.so.6.0.29 /usr/lib64/libstdc++.so.6