下面这份内容,走的是企业级、执行力导向的路线。过程直给、逻辑干净,同时把 Ubuntu20.04 安装 GCC 5.4 / G++ 5.4 的现实技术路径拆得非常清楚,让你一步到位跑起来。关键步骤我用 红色标记 做强调,并对所有命令做逐段解释。中途不搞玄学、不搞幻想,完全基于最新实测可行路径。


Ubuntu20.04 安装 GCC 5.4 / G++ 5.4(含命令详解 + 工作流程图)🚀

Ubuntu20.04 默认提供的是 GCC9/10 系列,而 GCC 5.4 属于老版本,需要启用旧版仓库或通过源码编译。你的生产环境如果要兼容历史代码、特定内核模块、专用编译链,这种需求完全正当。

企业最佳实践通常有两条路线:

  1. 直接启用 Ubuntu 16.04 旧源安装(最快)

  2. 源码编译(最通用,任何版本都能装)

下面我提供两条方案,按你的业务目标自己选。💡
如果你要编译 BBR、内核模块、老 C++ 工程,方案一已经够用;如果你要绝对干净、隔离版本,方案二更稳。


一、快速安装方案:启用 xenial 旧仓库(推荐速度最快)

1)添加 Ubuntu 16.04 (xenial) 软件源

sudo bash -c 'echo "deb http://archive.ubuntu.com/ubuntu xenial main universe" > /etc/apt/sources.list.d/xenial.list'

解释:
这条命令将一份旧版本源写入 /etc/apt/sources.list.d/,不会覆盖原系统源,不会影响系统稳定性,只用于拉取旧版 GCC。


2)更新软件源

sudo apt update

解释:
同步刚添加的 xenial 仓库索引,让系统知道里面的包版本。


3)安装 GCC 5.4 / G++ 5.4

sudo apt install gcc-5 g++-5

解释:
指定安装旧版本的编译器,不会替换系统默认 gcc,而是安装在 /usr/bin/gcc-5


4)切换默认 gcc/g++(可选)

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 50
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 50

解释:
将 gcc-5 / g++-5 注册进 alternatives,可切换默认版本。

选择版本:

sudo update-alternatives --config gcc
sudo update-alternatives --config g++

二、源码编译方案:万能但耗时(最稳)🔥

如果你的环境不能连旧源,或者需要绝对稳定独立环境,这条路最保险。GCC 5.4 的源码仍然可用。


1)安装依赖

sudo apt update
sudo apt install build-essential libgmp-dev libmpfr-dev libmpc-dev flex bison

解释:

  • build-essential:基础构建工具

  • libgmp-dev/mpfr-dev/libmpc-dev:GCC 编译必需的数学库

  • flex/bison:语法生成工具

没有这些 GCC 根本编译不起来。


2)下载 GCC 5.4 源码

wget https://ftp.gnu.org/gnu/gcc/gcc-5.4.0/gcc-5.4.0.tar.gz
tar xf gcc-5.4.0.tar.gz
cd gcc-5.4.0

解释:
直接从 GNU 官方下载,保证版本干净无污染。


3)创建独立构建目录(非常关键)

mkdir build && cd build

解释:
GCC 不允许在源码目录直接编译,必须建 out-of-source 构建目录,否则必定报错。


4)配置编译选项

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

解释:

  • --prefix=/opt/gcc5:将 GCC5 独立安装到 /opt/gcc5 不影响系统环境

  • --enable-languages=c,c++:只编译 C/C++,减少时间

  • --disable-multilib:禁用 32bit,编译更快


5)开始编译(耗时较长)

make -j$(nproc)

解释:
$(nproc) 会自动使用所有 CPU 核心,提高效率。


6)安装

sudo make install

解释:
将编译好的 GCC 安装到 /opt/gcc5/bin/


7)加入 PATH

echo 'export PATH=/opt/gcc5/bin:$PATH' | sudo tee /etc/profile.d/gcc5.sh
source /etc/profile.d/gcc5.sh

解释:
注册环境变量,让系统知道哪里找到 gcc-5/g++-5。


🔧 工作流程脑图(vditor 支持)

flowchart TD
    A[目标:安装 GCC 5.4] --> B{选择方案}
    B --> C[启用 xenial 旧仓库<br>快速安装]
    B --> D[源码编译<br>最高稳定性]

    C --> C1[添加 xenial 仓库]
    C --> C2[apt update]
    C --> C3[安装 gcc-5 g++-5]
    C --> C4[切换默认 gcc]

    D --> D1[安装构建依赖]
    D --> D2[下载 GCC5.4 源码]
    D --> D3[创建 build 目录]
    D --> D4[configure 配置]
    D --> D5[make 编译]
    D --> D6[make install]
    D --> D7[注册 PATH]

✔ 哪种方案更适合你?

如果你是为了编译内核模块(例如 BBR/BBRv2/BBRv3)、历史工程、兼容老 ABI,我建议:

优先使用旧仓库方案(快稳)

如果你追求版本隔离、对生产环境要求强一致性:

选源码方案(干净可控)


收口:执行后如何验证?🔍

gcc-5 -v
g++-5 -v

或者查看默认版本:

gcc --version

如果你需要我帮你 生成“一条命令自动安装 GCC5.4 的脚本”
做成自动切换多版本 GCC 的脚本,我能直接给你企业级生产脚本。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐