centos7离线升级gcc , 报错:/lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found
因为需要依赖gcc高版本 但是目前服务器版本是4.8.5的 然后服务器又是内网 所以只能离线升级gcc
分别下载
https://ftp.gnu.org/gnu/gcc/gcc-8.3.0/gcc-8.3.0.tar.gz
https://ftp.gnu.org/pub/gnu/gmp/gmp-6.1.0.tar.bz2
https://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz
http://www.mirrorservice.org/sites/sourceware.org/pub/gcc/infrastructure/isl-0.18.tar.bz2
解压并移动
tar -zxvf gcc-8.3.0.tar.gz
mv gcc-8.3.0 /usr/local/gcc-8.3.0
解压其他几个
tar jxvf gmp-6.1.0.tar.bz2 tar jxvf isl-0.18.tar.bz2 tar -zxvf mpc-1.0.3.tar.gz tar jxvf mpfr-3.1.4.tar.bz2
移动
mv gmp-6.1.0 /usr/local/gcc-8.3.0/gmp mv isl-0.18 /usr/local/gcc-8.3.0/isl mv mpc-1.0.3 /usr/local/gcc-8.3.0/mpc mv mpfr-3.1.4 /usr/local/gcc-8.3.0/mpfr
进入目录 执行编译
cd /usr/local/gcc-8.3.0 ./configure -enable-checking=release -enable-languages=c,c++ -disable-multilib make -j4 make install
其中 第三步可能需要很久
之后打开新窗口 查看gcc -v 就可以看到版本变了
至此gcc升级完成
搜索一下包
find / -name "libstdc++.so*"
会发现多了几个gcc8.3.0版本的
然后找到后缀是so.6的路径的包
strings /usr/local/gcc-8.3.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6 | grep CXXAB
可以看到已经有这个版本了
但是原本的软连接执行的时候还是没有 所以要把原本的软连接换掉
删除原来软连接
rm -f /usr/lib64/libstdc++.so.6
替换成这个新的 这个路径要看对不对 根据自己的来
ln -s /usr/local/gcc-8.3.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6 /usr/lib64/libstdc++.so.
然后在执行下 这样就有了
strings /usr/lib64/libstdc++.so.6 | grep CXXAB
-----------------------有任何问题可以在评论区评论,也可以私信我,我看到的话会进行回复,欢迎大家指教------------------------
(蓝奏云官网有些地址失效了,需要把请求地址lanzous改成lanzoux才可以)