1、切换到root账户
2、安装gcc4.8.5
yum install -y gcc gcc-c++
3、安装bzip2
yum install -y bzip2
4、下载gcc10.2.0包
wget -P /home https://mirrors.aliyun.com/gnu/gcc/gcc-10.2.0/gcc-10.2.0.tar.gz
出现错误:wget: 无法解析主机地址 “mirrors.aliyun.com”,手动修改dns即可;
5、解压镜像文件
cd /home && tar -xzvf /home/gcc-10.2.0.tar.gz
6、配置依赖项
cd /home/gcc-10.2.0 && ./contrib/download_prerequisites
这一步可能国内会等待比较久,耐心等待,如果出现error: Cannot download gmp-6.1.0.tar.bz2 from ftp://gcc.gnu.org/pub/gcc/infrastructure/
错误,执行
wget https://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2
如果报错其他文件不能下载,去https://gcc.gnu.org/pub/gcc/infrastructure/下载对应文件,复制到/home/gcc-10.2.0
即可。
7、创建安装文件夹
mkdir /usr/lib/gcc/x86_64-redhat-linux/10.2.0
8、创建编译文件夹
mkdir /home/gcc-build-10.2.0
cd /home/gcc-build-10.2.0
9、配置安装文件
../gcc-10.2.0/configure --prefix=/usr/lib/gcc/x86_64-redhat-linux/10.2.0/ --enable-checking=release --enable-languages=c,c++ --disable-multilib
10、执行编译并安装(编译需要2-3小时,请耐心等待)
make && make install
11、备份原gcc并链接新gcc
mv /usr/bin/gcc /usr/bin/gcc-4.8.5
mv /usr/bin/g++ /usr/bin/g++-4.8.5
alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8.5 88 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8.5
alternatives --install /usr/bin/gcc gcc /usr/lib/gcc/x86_64-redhat-linux/10.2.0/bin/x86_64-pc-linux-gnu-gcc 99 --slave /usr/bin/g++ g++ /usr/lib/gcc/x86_64-redhat-linux/10.2.0/bin/x86_64-pc-linux-gnu-g++
alternatives --config gcc
12、查询版本
gcc -v
g++ -v
13、替换库链接
如果出现错误:
/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found
/lib64/libstdc++.so.6: version `GLIBCXX_3.4.22' not found
执行以下语句,链接新的libstdc++.so.6库文件
rm -f /usr/lib64/libstdc++.so.6
ln -s /usr/lib/gcc/x86_64-redhat-linux/10.2.0/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6
可以用以下指令查看目前包含哪些库
strings /usr/lib64/libstdc++.so.6 | grep GLIBC