ARM-LINUX基础
+ -

gcc的安装与版本管理

2025-07-23 26 0

在 Ubuntu 上安装 GCC 12(或特定版本的 GCC),可以通过以下方法实现:


方法 1:使用 Ubuntu 官方源(推荐)

适用于 Ubuntu 22.04 (Jammy) 及更高版本,默认仓库已包含 GCC 12。

  1. 更新软件包列表

    sudo apt update
    
  2. 安装 GCC 12

    sudo apt install gcc-12 g++-12
    
  3. 设为默认编译器(可选)

    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 100
    sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 100
    

    切换默认版本:

    sudo update-alternatives --config gcc
    sudo update-alternatives --config g++
    
  4. 验证安装

    gcc --version
    g++ --version
    

方法 2:通过 Ubuntu Toolchain PPA(适用于旧版本)

如果官方源没有 GCC 12(如 Ubuntu 20.04),可以使用第三方 PPA:

  1. 添加 Toolchain PPA

    sudo add-apt-repository ppa:ubuntu-toolchain-r/test
    sudo apt update
    
  2. 安装 GCC 12

    sudo apt install gcc-12 g++-12
    
  3. 设为默认编译器(同上)

    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 100
    sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 100
    

方法 3:手动编译安装(不推荐)

仅适用于特殊情况(如需要特定补丁版本):

  1. 下载源码:
    wget https://ftp.gnu.org/gnu/gcc/gcc-12.1.0/gcc-12.1.0.tar.gz
    tar -xf gcc-12.1.0.tar.gz
    cd gcc-12.1.0
    
  2. 安装依赖:
    sudo apt install build-essential libgmp-dev libmpfr-dev libmpc-dev flex bison
    
  3. 编译安装:
    ./configure --prefix=/usr/local/gcc-12 --disable-multilib
    make -j$(nproc)
    sudo make install
    
  4. 添加环境变量:
    echo 'export PATH=/usr/local/gcc-12/bin:$PATH' >> ~/.bashrc
    source ~/.bashrc
    

验证 GCC 12

gcc-12 --version

输出应类似:

gcc-12 (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0

注意事项

  1. 如果系统已有其他 GCC 版本,使用 update-alternatives 管理多版本。
  2. 卸载旧版本(谨慎操作):
    sudo apt remove gcc-11 g++-11  # 举例卸载 GCC 11
    

这个命令用于在 Ubuntu/Debian 系统中配置 多版本 GCC 的默认选择,具体解释如下:


命令拆解

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 100
  • sudo:以管理员权限运行(因为需修改系统路径)。
  • update-alternatives:Ubuntu/Debian 中管理多版本软件的工具。
  • --install:表示要注册一个新的备选程序。

参数含义

  1. /usr/bin/gcc
    系统默认调用的 GCC 路径(软链接,实际会指向具体版本)。

  2. gcc
    备选组的名称,这里是 gcc(也可以是 g++python 等其他工具)。

  3. /usr/bin/gcc-12
    要加入备选的程序路径(这里是 GCC 12 的实际可执行文件)。

  4. 100
    优先级数字,值越大优先级越高(当存在多个版本时,系统会自动选择优先级最高的版本)。


实际作用

  1. 将 GCC 12 添加到系统的备选列表中。
  2. 如果之前没有设置过默认 GCC,系统会自动选择优先级最高的版本(此处是 100)。
  3. 如果已存在其他版本(如 GCC 11),可以通过以下命令手动切换:
    sudo update-alternatives --config gcc
    
    会显示类似以下菜单,输入对应编号即可切换:
      Selection    Path              Priority   Status
    ------------------------------------------------------------
    * 0            /usr/bin/gcc-11    110        auto mode
      1            /usr/bin/gcc-11    110        manual mode
      2            /usr/bin/gcc-12    100        manual mode
    

相关操作

  1. 查看当前所有备选版本

    update-alternatives --list gcc
    
  2. 删除某个备选版本(如移除 GCC 12):

    sudo update-alternatives --remove gcc /usr/bin/gcc-12
    
  3. 设置 G++ 的默认版本(同理):

    sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 100
    

为什么需要这样做?

  • 系统中可能同时存在多个 GCC 版本(如 11、12、13),但默认的 gcc 命令只能指向一个。
  • 通过 update-alternatives 可以灵活切换,避免手动修改软链接的风险。

注意事项

  • 如果只安装了一个 GCC 版本,update-alternatives 会直接将其设为默认。
  • 优先级相同的版本,系统会优先选择已标记为 auto mode 的版本。

如果有其他疑问,可以继续追问!

0 篇笔记 写笔记

关注公众号
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!