系统是CentOS 7, 自带的gcc是4.8.4
准备工作:
下载GCC源码包 gcc-5.5.0.tar.gz,地址(清华大学开源软件镜像站ipv6)(备选地址->gnu->gcc)
1.复制到Downloads文件夹下,解压缩
tar xvf gcc-5.5.0.tar.gz
2.下载依赖包
./contrib/download_prerequisites
3.新建目录
mkdir gcc5objdir
cd gcc5objdir
4.编译+安装
../gcc-5.5.0/configure --prefix=/usr/local/gcc5 --enable-checking=release --enable-languages=c,c++ --disable-multilib make && make install
5.之间已有低版本的gcc存在,先删除已建的软连接
rm -rf /usr/bin/gcc rm -rf /usr/bin/g++ ln -s /usr/local/gcc5/bin/gcc /usr/bin/gcc ln -s /usr/local/gcc5/bin/g++ /usr/bin/g++
6.查看新版本
gcc --version
7.运行程序时可能会出现/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found,是因为升级安装了gcc,生成的动态库没有替换老版本的gcc动态库导致的。
查看包含最新的动态链接库的位置
find / -name "libstdc++.so*"
找到在/usr/local/gcc5/lib64/文件夹下
cp /usr/local/gcc5/lib64/libstdc++.so.6.0.21 /usr/lib64/libstdc++.so.6.0.21 rm -f /usr/lib64/libstdc++.so.6 ln /usr/lib64/libstdc++.so.6.0.21 /usr/lib64/libstdc++.so.6
end