CentOS7编译安装GCC
文章目录
- CentOS7编译安装GCC
- 一、前言
- 1.简介
- 2.环境
- 二、正文
- 1.更换镜像源和安装依赖包
- 2.下载和解压GCC
- 3.执行脚本
- 4.配置编译参数
- 5.编译 GCC
- 6.安装 GCC
- 7. 卸载旧版本
- 8.创建软链接
- 9.验证版本
CentOS7编译安装GCC
一、前言
1.简介
-
CentOS7.9环境中,通过编译GCC源码,将原系统的 gcc 4.8.5 升级到 gcc 12.4.0
-
如果需要安装更高版本,比如 gcc 15.1.0,可以先安装 gcc 12.4.0,再安装 gcc 15.1.0,通过 update-alternatives 切换版本
2.环境
Linux 发行版:CentOS-7-x86_64-DVD-2207-02.iso
GUN 镜像站(日本-筑波大学):http://ftp.tsukuba.wide.ad.jp/gcc/infrastructure/
GUN 镜像站(阿里云):https://mirrors.aliyun.com/gnu/CentOS7切换镜像源和更新软件包:https://blog.csdn.net/u011424614/article/details/149867407
CentOS基础操作命令:https://blog.csdn.net/u011424614/article/details/94555916
CentOS对换home分区与root分区的存储空间:https://blog.csdn.net/u011424614/article/details/125853913
Dell R740安装CentOS:https://blog.csdn.net/u011424614/article/details/113306808
CentOS分区扩容:https://blog.csdn.net/u011424614/article/details/113275862
二、正文
1.更换镜像源和安装依赖包
- 更换 CentOS7 镜像源,参考《CentOS7切换镜像源和更新软件包》
- 安装 zlib-devel
yum install zlib-devel
2.下载和解压GCC
mkdir /opt/gcc
cd /opt/gcc
wget https://mirrors.aliyun.com/gnu/gcc/gcc-12.4.0/gcc-12.4.0.tar.gz
tar -zxvf gcc-12.4.0.tar.gz -C /usr/local/src
cd /usr/local/src/gcc-12.4.0/
3.执行脚本
- 编辑 download_prerequisites 文件
vim ./contrib/download_prerequisites
文件中替换 base_url :
# base_url='http://gcc.gnu.org/pub/gcc/infrastructure/'
base_url='http://ftp.tsukuba.wide.ad.jp/gcc/infrastructure/'
- 执行 download_prerequisites 脚本
./contrib/download_prerequisites# 脚本执行过程:
# 1.安装依赖包:gmp-6.1.0.tar.bz2、mpfr-3.1.6.tar.bz2、mpc-1.0.3.tar.gz、isl-0.18.tar.bz2
# 2.校验文件完整性
# 3.解压依赖包
# 4.创建依赖包的符号链接
4.配置编译参数
- 检测系统环境并生成适配的编译配置
mkdir build
cd build
../configure --prefix=/usr/local/gcc-12.4.0/ --mandir=/usr/share/man --infodir=/usr/share/info --enable-bootstrap --enable-shared \
--enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions \
--enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,lto --enable-plugin \
--enable-initfini-array --disable-libgcj --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --disable-multilib
5.编译 GCC
- 编译过程需要等待一段时间
# 启用多线程编译,线程数与系统的 CPU 核心数相同
make -j`nproc`# 备用,非必要执行,查询 CPU 核心数
lscpu
6.安装 GCC
make install -j`nproc`
7. 卸载旧版本
yum remove gcc
8.创建软链接
# 注意:
# 100 是指 update-alternatives 的优先级别,如果有多个版本,自动启用优先级高的链接
# libstdc++.so.6.0.30:不同的GCC 版本,libstdc++ 的版本不一样
update-alternatives --install /usr/bin/gcc gcc /usr/local/gcc-12.4.0/bin/gcc 100 \
--slave /usr/bin/g++ g++ /usr/local/gcc-12.4.0/bin/g++ \
--slave /usr/bin/gcov gcov /usr/local/gcc-12.4.0/bin/gcov \
--slave /usr/bin/c++ c++ /usr/local/gcc-12.4.0/bin/c++ \
--slave /usr/bin/cc cc /usr/local/gcc-12.4.0/bin/cc \
--slave /usr/lib64/libstdc++.so.6 libstdc++.so /usr/local/gcc-12.4.0/lib64/libstdc++.so.6.0.30
9.验证版本
gcc --version# 备用,非必要执行,提取并过滤 GNU C++ 标准库(libstdc++)支持的 GLIBCXX 版本符号
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX# 备用,非必要执行,GCC编译器版本的切换,运行指令后,输入需要启用 gcc 版本的编号
update-alternatives --config gcc