wsl ubuntu20.04 无法装g++问题解决

在使用WSL Ubuntu 20.04安装g++时遇到依赖问题,报错无法安装。问题根源在于软件源配置不正确,使用的是适用于Ubuntu 18.04的bionic源。解决方案是更新为适用于Ubuntu 20.04 (focal) 的软件源。通过修改清华源的配置文件,将bionic替换为focal,然后更新并重新尝试安装,成功解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

笔者在使用wsl ubuntu20.04安装g++

sudo apt-get install g++

的过程中,发现一直无法安装,报错如下:

Reading package lists… Done
Building dependency tree
Reading state information… Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
g++ : Depends: g+±7 (>= 7.4.0-1~) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.这里是引用

在网上查阅了很多方法,均没有效果。最后发现这与ubuntu的软件源有关。因为ubuntu自带的源下载速度很慢,我们常常更换清华源或者中科大源。网上大部分清华源都是这样的:

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

这个源实际上是给ubuntu18.04使用的,系统代号为bionic,可以通过

lsb_release -a

查看系统代号:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.1 LTS
Release: 20.04
Codename: focal

可见,ubuntu20.04的系统代号为focal,所以我们只需将源中的其它代号(例如bionic)替换成focal即可。

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse

如果想一步到位,可以直接到清华源上选择对应的ubuntu版本的源即可。

### 安和配置 GCC 编译器 在 WSL2 的 Ubuntu 20.04 系统中安和配置 GCC 编译器是一个相对简单的过程。以下是详细的说明: #### 更新系统包管理器 为了确保系统的软件包是最新的,在执行任何安操作之前,建议先运行以下命令来更新本地的 APT 软件包索引: ```bash sudo apt update && sudo apt upgrade -y ``` #### 安 build-essential 工具集 `build-essential` 是一个元软件包,它包含了开发环境中常用的工具集合,其中包括 `gcc` 和 `g++` 编译器以及 `make` 构建工具等必要组件[^2]。可以通过以下命令安该工具集: ```bash sudo apt install build-essential -y ``` 此命令将会自动拉取并安 `gcc`、`g++` 及其他依赖项。 #### 验证 GCC 是否成功安完成后,可通过以下命令验证 GCC 是否已正确安及其版本号: ```bash gcc --version ``` 如果显示了 GCC 版本信息,则表明安成功[^4]。 #### 更改默认源以提高下载速度(可选) 对于网络条件较差的情况,可以考虑更改 Ubuntu 默认的软件源为国内镜像站点,从而加快软件包的下载速度。具体方法如下: 1. 打开 `/etc/apt/sources.list` 文件进行编辑: ```bash sudo nano /etc/apt/sources.list ``` 2. 将其中的内容替换为国内某大学或机构提供的镜像地址列表之一,例如清华大学开源软件镜像站提供的 URL 地址[^3]: ``` deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse ``` 3. 保存修改后的文件,并重新刷新APT缓存: ```bash sudo apt update ``` 通过以上步骤,可以在 WSL2 上顺利设置好 GCC 编译环境用于 C/C++ 开发工作流。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值