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

 

posted @ 2024-06-19 14:30  yvioo  阅读(16)  评论(0编辑  收藏  举报