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

2023-05-16

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

    • 1.准备工作
      • 1.1 开启主板 BIOS 虚拟化
      • 1.2 检查是否成功开启虚拟化
      • 1.3 开启开发者模式
      • 1.4 开启所需Windows功能
      • 1.5 下载 WSL 内核升级包
    • 2.开始安装
      • 2.1 设置默认版本
      • 2.2 安装 Linux 发行版(默认安装在 C 盘)
    • 3 启动 WSL2
      • 3.1 固定到 "开始"
      • 3.2 从 Windows powershell 中启动
    • 4 卸载 WSL2
    • 5 VSCode 连接到 WSL2
    • 参考链接

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

十七、WSL2的安装与使用(Win11) 的相关文章

随机推荐

  • Rt-thread的CAN应用2

    1 rtt中使能CAN1 2 CubeMX生成部分代码 xff0c 完成下面操作然后生成MDK ARM项目文件 3 将CubeMX生成的 HAL CAN MspInit 函数 粘贴到drv can c中 并在rt hw can init 函
  • STM32的IIC接口输入输出定义

    IO方向设置 PC11 端口 define SDA IN GPIOC gt CRH amp 61 0XFFFF0FFF GPIOC gt CRH 61 8 lt lt 12 define SDA OUT GPIOC gt CRH amp 6
  • 从头开始用树莓派做一个NAS【最新超详细教程】

    一 概述 众所周知在办公的时候两台电脑之间经常倒数据资料非常麻烦 xff0c 而NAS可以很好的解决这个问题 树莓派搭建NAS方法有很多 xff0c 我们之前也拍过直接用Samba FTP这些来实现NAS功能 xff0c 但是这些需要你会在
  • 串口发送通信---UART发送---STM32F4实现

    串口发送程序配置过程 xff08 HAL库 xff09 初始化串口相关参数 xff0c 使能串口 HAL StatusTypeDef span class token function HAL UART Init span span cla
  • 基于UDP的文件传输VS编程

    要求 xff1a 实现基于UDP的文件传输 xff0c 客户端发送文件 xff0c 服务端接受文件 服务端实现 xff1a include 34 stdafx h 34 include 34 iostream 34 include 34 a
  • 成功解决VSCODE运行C++的报错问题g++

    成功解决VSCODE运行C 43 43 的报错问题g 43 43 解决方案调试 很久写C 43 43 了 xff0c 直接打开C 43 43 写代码测试一下 xff0c 报错 xff0c 真一脸懵逼 捯饬很久 xff0c 解决了问题 解决方
  • linux下的环境变量

    环境变量 环境变量 xff0c 是指在操作系统中用来指定操作系统运行环境的一些参数 通常具备以下特征 xff1a 字符串 本质 有统一的格式 xff1a 名 61 值 值 值用来描述进程环境信息 存储形式 xff1a 与命令行参数类似 ch
  • 【004 关键字】extern “C“的作用是什么?

    一 extern 34 C 34 的作用 extern 34 C 34 关键字常用于C 43 43 和C混合编程中 xff0c 用于指定函数或变量采用C语言的命名和调用约定 加上extern 34 C 34 后 xff0c 会指示编译器这部
  • C++模板编程--学习C++类库的编程基础

    目录 一 函数模板二 类模板三 实现C 43 43 STL向量容器vector代码四 理解容器空间配置器allocator的重要性 一 函数模板 1 模板的意义 xff1a 对类型也可以进行参数化了 2 函数模板 lt 61 是不进行编译的
  • cmake 学习使用笔记(二)库的生成与使用

    学习使用cmake 生成及使用库 xff0c 使用cmake 生成 lib 静态库 及动态库 xff08 dll xff09 及linux 下使用的静态库 a 和 动态库 xff08 so 也称为共享库 xff09 目录 使用工具 生成库
  • cmake 学习使用笔记(五)手动编译

    目录 编译cmake 项目 构建 方式一 xff1a 可执行文件生成的在当前目录 方式二 xff1a 可执行文件生成只制定目录 记录一下手动编译 cmake 项目 编译cmake 项目 项目结构 注意 xff1a 必须要有一个 CMakeL
  • 四旋翼无人机学习第5节--STM32最小系统外围电路分析

    文章目录 1 芯片手册分析2 stm32的外部晶振手册分析2 stm32的外部上电复位手册分析3 电源放置方法4 GND放置方法5 其他元器件放置方法6 网络放置方法7 快捷键分享8 原理图绘制成果分享 快速使用芯片的最好的方式 xff0c
  • 现代C++单文件库(header only)

    nlohmann json https github com nlohmann json easyloggingpp https github com amrayn easyloggingpp
  • 一、ROS创建工作空间

    一 ROS创建工作空间 1 什么是工作空间2 创建工作空间3 编译工作空间4 创建功能包5 编译功能包 xff08 重新编译工作空间 xff09 6 设置环境变量7 运行节点 1 什么是工作空间 工作空间 xff08 workspace x
  • 二、ROS集成开发环境

    二 ROS集成开发环境 1 安装terminator2 安装VScode3 在VScode中使用ROS3 1 创建工作空间3 2 启动VScode3 3 配置VScode3 4 创建功能包3 5 编写C 43 43 文件3 6 配置CMak
  • 十一、Ubuntu18.04下VSCode配置C/C++编译环境

    十一 Ubuntu18 04下VSCode配置C C 43 43 编译环境 1 安装VSCode2 安装插件3 创建工程4 总结 1 安装VSCode 这一步就不谈了 2 安装插件 编译一些简单的cpp文件 xff0c 下面几个插件就够用了
  • 十五、Typora官方主题 + 自定义主题

    十五 Typora官方主题 43 自定义主题 1 下载官方主题2 在官方主题的基础上自定义 1 下载官方主题 首先去Typora官网下载自己喜欢的主题 xff1a 官方主题下载 例如我这里选择 Vue 我们只用到里面的两个主题文件vue c
  • linux---进程控制

    进程控制 fork函数 创建一个子进程 pid t fork void 失败返回 1 xff1b 成功返回 xff1a 父进程返回子进程的ID 非负 子进程返回 0 pid t vfork void 同样时创建一个子进程 xff0c 但是他
  • 十六、windows11下VSCode配置C/C++编译环境

    十六 windows11下VSCode配置C C 43 43 编译环境 1 安装VSCode2 中文插件3 MinGW编译器下载和配置4 VSCode配置c c 43 43 编译环境5 测试是否配置成功6 使用万能头文件 include l
  • 十七、WSL2的安装与使用(Win11)

    十七 WSL2的安装与使用 xff08 Win11 xff09 1 准备工作1 1 开启主板 BIOS 虚拟化1 2 检查是否成功开启虚拟化1 3 开启开发者模式1 4 开启所需Windows功能1 5 下载 WSL 内核升级包 2 开始安