当前位置: 首页 > 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.xdnf.cn/news/1272529.html

相关文章:

  • 【Python 高频 API 速学 ④】
  • Spring学习笔记:Spring AOP入门以及基于Spring AOP配置的深入学习与使用
  • 嵌入式软件工程师笔试题(二)
  • 腾讯COS云存储入门
  • 原创邮件合并Python工具使用说明(附源码)
  • 安装NodeJS和TypeScript简要指南
  • 东方心绣脸启幕26周年盛典:以匠心锚定百年基业
  • 百度网盘自动启动如何关闭,关闭智能看图
  • AI推理的“灵魂五问”:直面2025算力鸿沟与中国的破局之路
  • 模拟人脑处理文本——从分句到分词,从段落到时间线叙事
  • 【Datawhale AI夏令营】让AI读懂财报PDF(多模态RAG)(Task 2)
  • 《汇编语言:基于X86处理器》第12章 复习题和练习
  • 《励曼旋耕》Liman Rotary Tillage
  • 202506 电子学会青少年等级考试机器人五级器人理论真题
  • JVM相关(AI回答)
  • 云渲染的未来已来:渲酷云如何重新定义数字内容生产效率
  • [CUDA] CUTLASS | C++ GEMM内核--高度模板化的类
  • 基于STM32H5的循环GPDMA链表使用
  • C语言指针完全指南:从入门到精通
  • C++虚函数表实现机制以及用C语言对其进行的模拟实现(加入了自己的思考和笔记)
  • 轻松Linux-5.进程控制
  • Linux文件系统基石:透彻理解inode及其核心作用
  • 复现论文关于3-RPRU并联机器人运动学建模与参数优化设计
  • 智慧农业-无人机视角庄稼倒伏农作物倒伏识别分割数据集labelme格式541张1类别
  • java基础(六)jvm
  • 12. “static关键字是什么意思”,Java中是否可以覆盖(override)一个private或者是static的方法
  • drippingblues靶机
  • 06-docker容器常用命令
  • 浏览器自动播放策略
  • AtCoder Beginner Contest 418