centos系统gcc升级4.8.1
安装步骤:
下载gcc最新版
wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.1/gcc-4.8.1.tar.gz
然后解压到文件夹
tar -xvzf gcc-4.8.1.tar.gz
进入解压缩之后的目录
cd gcc-4.8.1
然后执行下面的运行
./contrib/download_prerequisites
再返回上一层,建立build_gcc_4.8.1目录,这个目录和gcc-4.8.1平行
cd …
mkdir build_gcc_4.8.1
进入刚建立的目录,并执行编译过程
cd build_gcc_4.8.1
…/gcc-4.8.1/configure --enable-checking=release --enable-languages=c,c++
–disable-multilib
make -j4
make install
OK,在build_gcc_4.8.1中将gcc已经安装完成
确定新安装的GCC的路径,之前安装时记下最后mv时的路径即可
用which gcc 可查找到安装的路径
使用ls /usr/local/bin | grep gcc查看安装的版本
/usr/sbin/update-alternatives --install /usr/bin/gcc gcc /usr/local/bin/x86_64-unknown-linux-gnu-gcc-4.8.1 40
gcc --version #查看版本
/usr/sbin/update-alternatives --install /usr/bin/g++ g++ /usr/local/bin/g++ 40
g++ --version #查看版本
升级完gcc4.8.1后 仍出现’GLIBCXX_3.4.19’ not found错误
执行: # strings /usr/lib64/libstdc++.so.6|grep GLIBCXX
罗列的版本没有相应的版本,需要执行 以下操作:
转到上面解压的文件夹下找文件:libstdc++.so.6.0.18
我的目录是这个,具体可能有所差异,执行命令:
cd /root/situ/gcc-build-4.8.1/x86_64-unknown-linux-gnu/libstdc+±v3/src/.libs
进入文件目录
用下面的命令查看版本:
strings libstdc++.so.6|grep GLIBCXX
一般来讲,里面就有满足需要的GLIBCXX版本了。
有的话,ls找最高版的libstdc++.so.6.0.*文件,我的是libstdc++.so.6.0.19
然后,把该文件拷贝到了/usr/lib64下,执行命令拷贝:
cp libstdc++.so.6.0.19 /usr/lib64
将libstdc++.so.6指向libstdc++.so.6.0.19:
切换至工作目录:cd /usr/lib64
重新指向:
rm -r libstdc++.so.6
ln -s libstdc++.so.6.0.19 libstdc++.so.6
这样就可以正常用到了
默认动态库升级完成。重新运行以下命令检查动态库:
strings /usr/lib64/libstdc++.so.6 | grep GLIBC
输出就有想要的版本了
其他的报错信息ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.9’ not found (required by错误可参考:
https://blog.youkuaiyun.com/ccbrid/article/details/78979878