当前位置: 首页 > news >正文

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
http://www.dtcms.com/a/323493.html

相关文章:

  • Python基础教程(六)条件判断:引爆思维Python条件判断的九层境界
  • Java Stream流详解:用法与常用API实战
  • Kotlin 协程线程切换机制详解
  • 规划是自动驾驶的“头脑”
  • 灰度测试(灰度发布、金丝雀发布)
  • 推荐系统学习笔记(十一)预估分数融合
  • leetcode-C语言-3479.水果成篮 III
  • C++ vector类
  • 3.2Vue Router路由导航
  • 【熵增与熵减:从混乱到有序的奥秘】
  • 词向量可视化:用TensorBoard或PCA探索词向量空间
  • 【JavaEE】(11) 前端基础三件套
  • 大数据与财务管理:未来就业的黄金赛道
  • java9学习笔记-part2
  • rosrun 和 roslaunch 区别
  • Busybox编译、制作initramfs,并在QEMU中运行
  • 医疗健康Agent:诊断辅助与患者管理的AI解决方案
  • rotary_emb 位置编码 加速
  • 练习uart和摄像头内核驱动开发测试
  • imx6ull-驱动开发篇15——linux自旋锁
  • 2025-08-09 李沐深度学习14——经典卷积神经网络 (2)
  • 【C++】模版进阶
  • redis存储原理与数据模型
  • 复数与频谱的联系
  • 库函数蜂鸣器的使用(STC8)
  • ECML PKDD 2025 | 时间序列(Time Series)论文总结
  • “秦时明月”提前布局商标被电视剧侵权!
  • 深入理解 RedisTemplate:简化 Java 与 Redis 的交互!
  • 【系统编程】进程创建
  • 本地进行语音文字互转