Centos6.X 手动升级gcc

操作环境 CentOS6.5 64bit,gcc原版本为4.4.7,不能支持C++11的特性,所以需要升级

[root@zengxj ~]# wget http://ftp.gnu.org/gnu/gcc/gcc-6.1.0/gcc-6.1.0.tar.gz
[root@zengxj ~]# tar -zvxf gcc-6.1.0.tar.gz --directory=/usr/local/
[root@zengxj ~]# cd /usr/local/gcc-6.1.0
[root@zengxj gcc-6.1.0]# ./contrib/download_prerequisites
[root@zengxj gcc-6.1.0]# mkdir build && cd build
[root@zengxj build]# ../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib 
[root@zengxj build]# make 
[root@zengxj build]# make install

# 替换原来的gcc版本
[root@zengxj build]# update-alternatives --install /usr/bin/gcc gcc /usr/local/bin/x86_64-pc-linux-gnu-gcc 40
[root@zengxj build]# mv /usr/bin/gcc /usr/bin/gcc.bak
[root@zengxj build]# ln -s /usr/local/bin/x86_64-pc-linux-gnu-gcc /usr/bin/gcc

# 重启
[root@zengxj build]# reboot

 

 在执行程序出现 "/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found" 的情况,可能是已安装过高版本的gcc但是未软连接

解决方法:查找编译gcc时生成的最新动态库

find / -name "libstdc++.so*"

cd /usr/lib64
ll stdlibc++*

这时可以看到当前libstdc++.so.6指向13的版本,接下来将刚刚的高版本的复制到这里并重建软链即可

rm libstdc++.so.6
ln -s libstdc++.so.6.0.22 libstdc++.so.6

 

posted @ 2019-03-25 13:31  让我们荡起双桨!  阅读(677)  评论(0编辑  收藏  举报