当前位置: 首页 > news >正文

WSL2 Ubuntu安装GCC不同版本

WSL2 Ubuntu安装GCC不同版本

  • 介绍
    • 安装gcc 7.1
      • 方法 1:通过源码编译安装 GCC 7.1
        • 步骤 1:安装编译依赖
        • 步骤 2:下载 GCC 7.1 源码
        • 步骤 3:配置和编译
        • 步骤 4:配置环境变量
        • 步骤 5:验证安装
      • 方法 2:通过第三方 PPA 安装(不推荐,可能不兼容)
      • 注意事项
    • 安装gcc 10、11及以上(以11为例)
      • 1. 更新软件包列表
      • 2. 安装 GCC 11 和 G++ 11
        • 直接通过官方仓库安装(推荐)
      • 3. 验证安装
      • 4. 设置默认版本(可选)
      • 5. 完全卸载(如果需要)
    • 卸载安装
      • 1. 删除安装目录
      • 2. 清理环境变量
      • 3. 移除 `update-alternatives` 配置(如果配置过)
      • 4. 验证卸载
      • 5. 额外清理(可选)
      • 注意事项

介绍

安装gcc 7.1

在 WSL2 的 Ubuntu 24.04 中安装 GCC 7.1 需要手动操作,因为该版本较旧且 Ubuntu 24.04 的默认仓库已不再提供。以下是分步安装方法:

方法 1:通过源码编译安装 GCC 7.1

步骤 1:安装编译依赖
sudo apt update
sudo apt install -y build-essential \
    gcc-multilib g++-multilib \
    libgmp-dev libmpfr-dev libmpc-dev \
    flex bison texinfo
步骤 2:下载 GCC 7.1 源码
wget https://ftp.gnu.org/gnu/gcc/gcc-7.1.0/gcc-7.1.0.tar.gz
tar -xzvf gcc-7.1.0.tar.gz
cd gcc-7.1.0
步骤 3:配置和编译
./configure --prefix=/usr/local/gcc-7.1 \
    --enable-languages=c,c++ \
    --disable-multilib \
    --disable-bootstrap
make -j$(nproc)  # 根据 CPU 核心数调整并行编译(如 `-j4`)
sudo make install
步骤 4:配置环境变量
# 将以下内容添加到 ~/.bashrc
echo 'export PATH=/usr/local/gcc-7.1/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/gcc-7.1/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
步骤 5:验证安装
gcc --version  # 应输出 "gcc (GCC) 7.1.0"

方法 2:通过第三方 PPA 安装(不推荐,可能不兼容)

如果存在支持 Ubuntu 24.04 的旧版 GCC PPA,可以尝试:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt install gcc-7 g++-7

Ubuntu 24.04 可能已移除对 GCC 7 的支持,此方法大概率失败。


注意事项

  1. 兼容性问题

    • Ubuntu 24.04 的库依赖较新,安装旧版 GCC 7.1 可能导致动态链接库冲突。
    • 推荐优先使用 Docker 容器源码编译
  2. 多版本管理

    • 使用 update-alternatives 管理多版本 GCC:
      sudo update-alternatives --install /usr/bin/gcc gcc /usr/local/gcc-7.1/bin/gcc 70
      sudo update-alternatives --config gcc  # 交互式切换版本
      
  3. 依赖修复

    • 如果安装后出现依赖错误,尝试:
      sudo apt --fix-broken install
      

安装gcc 10、11及以上(以11为例)

在 Ubuntu 系统中安装 GCC 11G++ 11 的步骤如下:

1. 更新软件包列表

sudo apt update

2. 安装 GCC 11 和 G++ 11

直接通过官方仓库安装(推荐)

如果 Ubuntu 仓库中已包含 GCC 11:

sudo apt install gcc-11 g++-11

3. 验证安装

检查版本:

gcc-11 --version  # 应输出 "gcc (Ubuntu 11.x.x)"
g++-11 --version  # 应输出 "g++ (Ubuntu 11.x.x)"

4. 设置默认版本(可选)

如果系统中存在多个 GCC/G++ 版本,可通过 update-alternatives 切换默认版本:

# 配置 GCC
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 11

# 配置 G++
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 11

# 交互式选择默认版本
sudo update-alternatives --config gcc
sudo update-alternatives --config g++

5. 完全卸载(如果需要)

sudo apt remove gcc-11 g++-11

卸载安装

要卸载通过源码编译安装的软件(例如 GCC 7.1),需手动删除安装时生成的文件和目录。以下是详细步骤:

1. 删除安装目录

如果编译安装时指定了 --prefix=/usr/local/gcc-7.1,直接删除该目录:

sudo rm -rf /usr/local/gcc-7.1

2. 清理环境变量

如果之前在 ~/.bashrc~/.profile 中添加了环境变量,需手动移除相关行:

nano ~/.bashrc

删除以下类似内容:

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

保存文件后生效:

source ~/.bashrc

3. 移除 update-alternatives 配置(如果配置过)

如果通过 update-alternatives 设置了默认版本,需移除相关条目:

# 列出所有 GCC 版本
sudo update-alternatives --config gcc

# 移除 GCC 7.1 的条目
sudo update-alternatives --remove gcc /usr/local/gcc-7.1/bin/gcc

4. 验证卸载

检查是否彻底移除:

gcc --version          # 应不再显示 7.1 版本
ls /usr/local/gcc-7.1  # 目录应不存在

5. 额外清理(可选)

  • 删除源码目录
    rm -rf ~/gcc-7.1.0  # 假设源码解压到用户主目录
    
  • 清理系统缓存
    sudo ldconfig  # 更新动态链接库缓存
    

注意事项

  1. 谨慎操作:使用 sudo rm -rf 时确保路径正确,避免误删系统文件。
  2. 多版本共存:如果系统中存在多个 GCC 版本,确保其他版本不受影响。
  3. 依赖问题:卸载后,依赖该 GCC 版本的程序可能无法运行,需重新配置或安装。

相关文章:

  • 解锁C++:指针与数组、字符串的深度探秘
  • 【FC改版激龟快打】MUGEN 激龟快打-含下载地址、出招技能表
  • WSL2 Ubuntu安装Cuda 11.8
  • 蓝桥杯省赛真题C++B组-小球反弹
  • 利用Python爬虫根据关键词获取商品列表
  • 矫平机:工业制造的“误差归零者”,如何重塑智造新生态?
  • 深入理解 Qt 系统托盘图标:创建自定义的系统托盘图标类
  • 星越L_外后视镜使用讲解
  • Python的那些事第四十五篇:继承自Nose的测试框架Nose2
  • python中的max(),需要注意的点
  • 内存泄漏的防范:检测与预防
  • nodejs42 (UI相关) : svg的viewBox属性
  • 【小沐学Web3D】three.js 加载三维模型(React)
  • 【GNU Radio】ZMQ模块学习
  • 弹球小游戏-简单开发版
  • Spring Cloud 中的服务注册与发现: Eureka详解
  • python相关语法的学习文档1
  • @restcontroller和@RequestMapping 注解的简单学习
  • kmp报错→Cannot find skiko-windows-x64.dll.sha256
  • Java线程
  • 视频丨习近平主席出席俄方在机场举行的迎宾仪式
  • 上海市委政法委召开会议传达学习总书记重要讲话精神
  • 商务部新闻发言人就中美经贸高层会谈答记者问
  • 巴基斯坦军方:印度导弹袭击已造成至少3人死亡
  • 巴基斯坦:印度向巴3处地点发射导弹
  • 打造多元文旅消费场景,第四届长三角城市戏剧节启幕