5154

Good Luck To You!

如何在CentOS 7系统中编译安装GCC 5.0?

在 CentOS 系统中,尤其是在注重稳定性的 CentOS 7 版本中,默认的软件仓库通常提供经过长期验证的软件版本,其默认的 GCC 编译器版本往往是 4.8.x,这在面对一些需要较新 C++11/14 特性或依赖特定编译器行为的旧项目时,可能会显得力不从心,在 CentOS 上安装 GCC 5.0 成为了一个常见的需求,主要用于兼容特定的遗留系统或复现特定的编译环境,本文将详细介绍两种在 CentOS 上安装 GCC 5.0(或接近版本如 5.3)的主流方法,并对它们进行比较分析。

如何在CentOS 7系统中编译安装GCC 5.0?

使用软件集(推荐)

对于 CentOS 7 而言,最优雅、最安全且官方推荐的方式是使用 Software Collections (SCL),SCL 允许用户在不影响系统核心软件包的前提下,安装和使用多个版本的软件,这对于需要特定开发工具链的场景来说,是理想的解决方案。

启用 SCL 仓库 你需要安装 centos-release-scl 包来启用 SCL 仓库,打开终端,执行以下命令:

sudo yum install centos-release-scl

这个命令会配置你的 yum,使其能够访问包含各种软件集的仓库。

安装 Developer Toolset 包含 GCC 5.x 版本的软件集是 devtoolset-4,它提供了 GCC 5.3.1 版本,这是与 5.0 最接近且经过充分测试的稳定版本,执行安装命令:

sudo yum install devtoolset-4

此过程会下载并安装 GCC 5.3.1 以及相关的开发工具,如 gdbmake 等。

启用开发环境 安装完成后,GCC 5.3 并不会立即取代系统默认的 GCC 4.8,你需要手动启用它,每次需要使用新版本 GCC 时,可以在终端中运行:

scl enable devtoolset-4 bash

这个命令会启动一个新的 Bash shell 会话,在此会话中,环境变量(如 PATHLD_LIBRARY_PATH)已被临时修改,gcc 命令将指向 /opt/rh/devtoolset-4/root/usr/bin/gcc

验证安装 在启用的新 shell 中,验证 GCC 版本:

如何在CentOS 7系统中编译安装GCC 5.0?

gcc --version

输出信息应显示为 gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6),证明安装和启用成功。

从源码编译(高级)

SCL 仓库不可用,或者你需要对 GCC 进行高度定制,那么从源码编译是最后的选择,这个过程非常耗时,且容易出错,仅建议有经验的用户操作。

安装编译依赖 编译 GCC 需要先安装一些基础工具和依赖库:

sudo yum groupinstall "Development Tools"
sudo yum install gmp-devel mpfr-devel libmpc-devel isl-devel wget

下载和解压源码 从 GCC 官方镜像站下载所需版本的源码,gcc-5.5.0

wget https://ftp.gnu.org/gnu/gcc/gcc-5.5.0/gcc-5.5.0.tar.gz
tar -xzf gcc-5.5.0.tar.gz
cd gcc-5.5.0

配置编译选项 为了避免覆盖系统默认的 GCC,务必使用 --prefix 指定一个安装目录,/usr/local/gcc5

./configure --prefix=/usr/local/gcc5 --enable-languages=c,c++ --disable-multilib

编译和安装 这一步耗时最长,根据机器性能可能需要一到数小时:

make -j$(nproc)
sudo make install

配置环境变量 编译安装后,将新 GCC 的 bin 目录添加到 PATH 环境变量中,可以编辑 ~/.bashrc 文件,在末尾添加:

export PATH=/usr/local/gcc5/bin:$PATH

然后执行 source ~/.bashrc 或重新登录使其生效。

如何在CentOS 7系统中编译安装GCC 5.0?

方法对比

特性 方法一 (SCL) 方法二 (源码编译)
易用性 非常简单,几条命令即可完成 复杂,步骤繁多,易出错
安装时间 快速,取决于网络下载速度 极慢,需要数小时编译
系统风险 低,与系统核心隔离 高,操作不当可能破坏系统
灵活性 中等,版本受限于 SCL 仓库 高,可完全自定义编译选项
维护性 好,可通过 yum 更新 差,需要手动管理和更新

相关问答 FAQs

Q1: 为什么我使用 scl enable devtoolset-4 bash 后,关闭终端再重新打开,gcc --version 又变回原来的版本了?

A1: 这是因为 scl enable 命令仅在当前执行的 shell 会话中临时修改了环境变量,当你关闭这个终端或开启一个新的会话时,环境变量会恢复为系统默认值,如果你希望每次登录时都自动使用 GCC 5.3,可以将启用命令添加到你的 shell 配置文件中(~/.bashrc~/.bash_profile),可以执行以下命令:

echo "source scl_source enable devtoolset-4" >> ~/.bashrc

之后,每次新的登录会话都会自动加载 Developer Toolset 4 的环境。

Q2: 我可以在 CentOS 8 或 CentOS Stream 上使用同样的 devtoolset-4 方法安装 GCC 5.0 吗?

A2: 不可以。devtoolset 是专门为 CentOS 7 设计的软件集,在 CentOS 8 及其后续版本(如 CentOS Stream)中,包管理器和软件源生态系统发生了变化,这些系统通常自带较新的 GCC 版本(如 GCC 8、9、11 等),如果确实需要在这些新系统上使用 GCC 5,推荐的做法是使用容器技术(如 Docker 或 Podman),创建一个基于 CentOS 7 并已安装好 devtoolset-4 的容器环境,这样既能获得所需的编译环境,又不会污染宿主系统,是目前更现代化和可移植的解决方案。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2025年11月    »
12
3456789
10111213141516
17181920212223
24252627282930
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
    网站收藏
    友情链接

    Powered By Z-BlogPHP 1.7.3

    Copyright Your WebSite.Some Rights Reserved.