CentOS 升级 GCC

2024-12-05 17:35:22 274

欢迎来到蓝队云技术小课堂,每天分享一个技术小知识。

 

CentOS 系统中,很多软件开发和构建任务依赖于 GCC(GNU Compiler Collection)。默认安装的 GCC 版本可能较低,不满足项目需求,因此我们需要升级 GCC。本指南将为你详细讲解如何通过包管理器或源码编译升级 GCC,以及如何解决常见问题。

 

一、检查当前环境

1. 查看当前 GCC 版本

gcc --version

 

2. 查看 GCC 安装路径

which gcc

 

3. 查看 CentOS 版本

cat /etc/redhat-release

 

二、通过包管理器升级 GCC

如果你需要快速升级,可以使用 CentOS 的 SCL(Software Collections)或 Devtoolset。

1. 启用 Devtoolset

yum install centos-release-scl -y

yum install devtoolset-11-gcc devtoolset-11-gcc-c++ -y

 

2. 临时启用新版 GCC

scl enable devtoolset-11 bash

 

3. 永久启用新版 GCC

将以下内容添加到 ~/.bashrc 文件中:

source /opt/rh/devtoolset-11/enable

 

三、从源码编译安装 GCC

如果需要最新版本的 GCC,推荐从源码安装。以下是完整步骤。

1. 下载源码包

访问 GCC 官方下载页面,选择适合的版本。例如,下载 GCC 11.4:

wget http://www.landui.com/gnu/gcc/gcc-11.4.0/gcc-11.4.0.tar.gz

 

2. 解压源码并切换目录

tar -zxvf gcc-11.4.0.tar.gzcd gcc-11.4.0

 

3. 安装依赖项

yum install -y glibc-headers gcc-c++ gmp gmp-devel mpfr mpfr-devel libmpc libmpc-devel libffi-devel

 

4. 下载和准备依赖库

./contrib/download_prerequisites

 

5. 配置依赖库并安装

进入依赖库目录,依次安装:

cd mpfr-3.1.6

./configure --prefix=/usr/local/mpfr-3.1.6

make

make install

cd ../mpc-1.0.3

./configure --prefix=/usr/local/mpc-1.0.3

make

make install

cd ../gmp-6.1.0

./configure --prefix=/usr/local/gmp-6.1.0

make

make install

cd ../isl-0.18

./configure --prefix=/usr/local/isl-0.18

make

make install

 

6. 配置 GCC 编译参数

创建构建目录并配置:

mkdir buildcd build

../configure --prefix=/usr/local/gcc-11.4.0 \\\\

--with-gmp=/usr/local/gmp-6.1.0 \\\\

--with-mpfr=/usr/local/mpfr-3.1.6 \\\\

--with-mpc=/usr/local/mpc-1.0.3 \\\\

--with-isl=/usr/local/isl-0.18 \\\\

--with-system-zlib \\\\

--disable-multilib

 

7. 编译和安装

make -j$(nproc)  # 使用多线程编译

make install

 

四、配置新版本 GCC

1. 更新环境变量

编辑 ~/.bashrc 文件,添加:

export PATH=/usr/local/gcc-11.4.0/bin:$PATHexport LD_LIBRARY_PATH=/usr/local/gcc-11.4.0/lib64:$LD_LIBRARY_PATH

执行以下命令生效:

source ~/.bashrc

 

2. 更新软链接

确保系统使用新版 GCC,更新软链接:

mv /usr/bin/gcc /usr/bin/gcc.bakln -s /usr/local/gcc-11.4.0/bin/gcc /usr/bin/gcc

mv /usr/bin/g++ /usr/bin/g++.bakln -s /usr/local/gcc-11.4.0/bin/g++ /usr/bin/g++

mv /usr/bin/c++ /usr/bin/c++.bakln -s /usr/local/gcc-11.4.0/bin/c++ /usr/bin/c++

 

3. 更新动态链接库

如果需要新版本的 libstdc++,执行以下操作:

cp /usr/local/gcc-11.4.0/lib64/libstdc++.so.6.0.29 /usr/lib64/mv /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.bakln -s /usr/lib64/libstdc++.so.6.0.29 /usr/lib64/libstdc++.so.6

 

五、验证安装结果

测试 GCC 版本是否更新:

gcc --version


蓝队云官网上拥有完善的技术支持库可供参考,大家可自行查阅,更多技术问题,可以直接咨询。同时,蓝队云整理了运维必备的工具包免费分享给大家使用,需要的朋友可以直接咨询。

更多技术知识,蓝队云期待与你一起探索。

提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: