十七、WSL2的安装与使用(Win11)

1.准备工作

1.1 开启主板 BIOS 虚拟化

如果是这几年新买的电脑,默认这项是打开的
例如:我这台联想小新Pro 16 2022 就是默认打开的
不同的电脑,开启 BIOS 虚拟化的操作不一样,一般都是进入 BIOS → 找到虚拟化设置 → 开启

1.2 检查是否成功开启虚拟化

打开任务管理器查看

在这里插入图片描述

1.3 开启开发者模式

设置 → 隐私和安全性 → 开发者选项 → 开

在这里插入图片描述

1.4 开启所需Windows功能

控制面板 → 程序 → 程序和功能 → 启用或关闭Windows功能 → 虚拟机平台、适用于Linux的Windows子系统 → 重启生效

在这里插入图片描述

1.5 下载 WSL 内核升级包

直接点击下载
下载完成之后,双击,一直点 next,安装完成即可
在这里插入图片描述

2.开始安装

2.1 设置默认版本

指定要使用的 WSL 版本为 WSL2:直接在 Windows powershell 中输入以下指令即可

wsl --set-default-version 2

还可以查看一下,能安装哪些版本的 Ubuntu

wsl --list --online

在这里插入图片描述

2.2 安装 Linux 发行版(默认安装在 C 盘)

方法一:直接在 Windows powershell 中输入以下指令进行安装

wsl --install -d Ubuntu-20.04

在这里插入图片描述
安装完成后,会自动启动 WSL2,然后设置用户名和密码即可
在这里插入图片描述

可以通过下面的命令查看已经安装成功的Linux发行版

## 以下两条指令二选一即可
wsl -l
wsl --list

在这里插入图片描述
安装成功后,会在此电脑下,看到安装好的子系统
支持在 Windows 中直接访问 WSL2 中的目录
在这里插入图片描述

方法二:在 Microsoft Store 里面,搜索 ubuntu,找你需要的 Ubuntu 版本进行下载
在这里插入图片描述

3 启动 WSL2

3.1 固定到 “开始”

在所有应用里面找到Ubuntu,将其固定到 “开始”,点击即可启动
在这里插入图片描述

3.2 从 Windows powershell 中启动

在这里插入图片描述

4 卸载 WSL2

## 查看安装的Ubuntu版本
wsl --list

## 卸载
wsl --unregister Ubuntu-20.04

## 再次查看
wsl --list

5 VSCode 连接到 WSL2

首先,在 Win11上下载和安装 VSCode
然后打开 VSCode,安装 Remote-WSL插件(现在貌似已经改名成了 WSL),其他开发所需插件自行配置(WSL 里的插件并不会继承原主机的插件,需要重新下载安装)
在这里插入图片描述

现在,我们随便建一个文件夹测试一下
我们到 WSL2 的家目录下,新建一个空的文件夹,叫做myCppdemo
在这里插入图片描述
然后,在终端中进入这个目录,并尝试用 VSCode 打开这个文件夹
你会发现,它会去安装一个 VS Code Server,然后这个文件夹就被 Win11下的 VSCode 打开了
VS Code Server 安装完成后,个人用户目录$HOME下会出现一个.vscode-server文件夹,里面有三个目录bin、extensions、data。bin目录下面存的是VS Code Server程序,extensions目录下是VS Code Server端安装的插件(你之后在 VSCode上安装的 WSL 的插件,都被放到了这个目录下),data目录下是用户数据
在这里插入图片描述
可以看到在 VSCode中显示了,这个文件夹是 WSL 里面的一个文件夹
在这里插入图片描述
现在,我们可以在 Win11 下的VSCode,去创建和编辑 WSL 内部的文件了!
例如,我现在新建一个 test.cpp

#include <bits/stdc++.h> //万能头文件
#include <iostream>
using namespace std;

const int inf = 0x3f3f3f3f; 

int main()
{
    vector<int> vec{0, 1, 2, 3, 4, 5};
    for(auto& x : vec) {
        cout << x << endl;
    }
    
    cout << "Hello WSL!"<< endl;
    return 0;
}

尝试去编译运行一下,失败,因为没有 g++

因为 Ubuntu20.04 默认是不自带 gcc 和 g++的,所以还需要自己手动安装
首先,换一下源,否则下载速度太慢了!

# 首先备份源列表
sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup
# 修改更新源
sudo vim /etc/apt/sources.list
#更新
sudo apt update
sudo apt upgrade

然后将原内容全部删掉,并将下面内容添加进去

deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse

最后,输入以下指令,该命令将安装一堆新包,包括gcc,g ++和make

## 安装一些必要的工具
sudo apt install build-essential

## 查看 gcc 和 g++ 的版本
g++ --version
gcc --version

在这里插入图片描述
现在,重新开始编译和运行 test.cpp文件,运行成功!
在这里插入图片描述
在这里插入图片描述
但是这样还是太麻烦,我希望直接在 VSCode中直接进行编译和调试!
之前我说了,WSL 里的插件并不会继承原主机的插件,所以需要重新下载安装
在这里插入图片描述

安装完成之后
在这里插入图片描述
现在,我们重新配置一下 .vscode 文件夹
新建一个.vscode
然后在.vscode文件夹下手动创建一个 launch.json 文件,然后复制下面这段内容到 launch.json 中

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}.out",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "preLaunchTask": "build",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

然后在.vscode文件夹下手动创建一个 tasks.json 文件,然后复制下面这段内容到 tasks.json 中

{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "shell",
			"label": "build",
			"command": "g++",
			"args": [
				"-g",
				"${file}",
				"-o",
				"${fileDirname}/${fileBasenameNoExtension}.out"
			],
			"options": {
				"cwd": "/usr/bin"
			},
			"problemMatcher": [
				"$gcc"
			],
			"group": {
				"kind": "build",
				"isDefault": true
			}
		}
	]
}

注意,如果没有安装 gdb,需要先安装(这Ubuntu20.04穷的要死,啥都没预装),否则无法 F5 进行调试

sudo apt install gdb

按下 F5 调试成功!
在这里插入图片描述

参考链接

WSL2的安装与使用
WSL2 + Ubuntu20.04安装记录
微软官方文档:手动安装 WSL2

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值