WSL 配置 Linux

news2024/10/4 19:18:32

WSL 配置 Linux

Windows 启动 Linux 子系统

控制面板 -> 程序和功能, 将 适用于 Linux 的 Windows 子系统 勾选。

62626

安装 Terminal

在 Microsoft Store 市场上搜索 Terminal 安装 Windows Terminal

在这里插入图片描述


安装 编译工具链

sudo apt update # 更新软件包
sudo apt install build-essential
sudo apt install gdb # GDB 调试器
sudo apt install cmake
sudo apt install ninja-build    # 构建加速、自动化构建

等待安装完成,之后查看安装结果

cmake --version
gcc -v
g++ -v
ninja --version

Ubuntu 20.04 安装 vcpkg

安装 vcpkg

从 GitHub 存储库下载 vcpkg:

# wget: 一个用于从网络上下载文件的命令行工具
# -O vcpkg.tar.gz: 表示将下载的文件保存为 vcpkg.tar.gz,其中 -O 参数指定保存的文件名
wget -O vcpkg.tar.gz https://github.com/microsoft/vcpkg/archive/master.tar.gz

创建一个新目录来存储 vcpkg 并将 tar.gz 文件解压缩到其中:

sudo mkdir /opt/vcpkg
sudo tar xf vcpkg.tar.gz --strip-components=1 -C /opt/vcpkg
# --strip-components=1:该选项指定解压缩时去除文件路径中的第一个组件,如去除"vcpkg-master"

运行以下命令来构建 vcpkg 本身:

sudo apt-get install curl zip unzip tar
sudo /opt/vcpkg/bootstrap-vcpkg.sh

在 /usr/local/bin 目录中,可创建一个指向 vcpkg 命令的符号链接:

sudo ln -s /opt/vcpkg/vcpkg /usr/local/bin/vcpkg

现在 vcpkg 可以用作所有用户的系统范围命令。可使用以下命令检查 vcpkg 版本:

vcpkg version

tar.gz 不再需要该文件,将其删除:

rm -rf vcpkg.tar.gz

测试 vcpkg

可使用 vcpkg install 命令来构建和安装库。例如,以下命令安装 zlib / tbb 库。但可能还需要安装其他的包,可以从错误信息中找到。

sudo apt-get install pkg-config

sudo vcpkg install tbb:x64-linux

运行以下命令以获取已安装库的列表:

sudo vcpkg list

卸载 vcpkg

如果想彻底删除 vcpkg,删除安装目录:

sudo rm -rf /opt/vcpkg

删除符号链接:

sudo rm -rf /usr/local/bin/vcpkg

删除 vcpkg 缓存和相关目录:

sudo rm -rf /root/.cache/vcpkg
sudo rm -rf /root/.vcpkg
rm -rf ~/.vcpkg

测试 TBB

在项目根目录下新建.vscode 文件夹,在其下新建 setting.json 文件,将如下内容拷贝进去:

"C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools",
"cmake.configureSettings": {
    "CMAKE_TOOLCHAIN_FILE": "/opt/vcpkg/scripts/buildsystems/vcpkg.cmake"
},
"cmake.buildDirectory": "${workspaceFolder}/build",
"C_Cpp.errorSquiggles": "enabled",

项目根目录下新建 CMakeLists.txt 文件:

cmake_minimum_required(VERSION 3.11)

project(BlinkHash)

set(CMAKE_CXX_STANDARD 17)

# 寻找TBB库
find_package(TBB CONFIG REQUIRED)

# include_directories(${PROJECT_SOURCE_DIR}/lib)

# 添加可执行文件
file(GLOB SRC_LIST "${CMAKE_CURRENT_SOURCE_DIR}/test/*.cpp")
add_executable(app ${SRC_LIST})

target_link_libraries(app PRIVATE TBB::tbb TBB::tbbmalloc)

迁移 WSL

查看系统版本

wsl -l -v

关闭系统

wsl --shutdown

迁移系统

wsl --export Ubuntu E:\EnvironmentSetting\CPP\UbuntuWSL\Ubuntu.tar

迁移后注销原系统

wsl --unregister Ubuntu

# 查看是否真的注销成功
wsl -l -v

导入系统

wsl --import <导入的Linux名称> <导入盘的路径> <ubuntu.tar的路径> --version 2 (代表wsl2)

wsl --import Ubuntu E:\EnvironmentSetting\CPP\UbuntuWSL\ E:\EnvironmentSetting\CPP\UbuntuWSL\Ubuntu.tar --version 2

修改默认用户:打开 wsl ubuntu 之后,默认以 root 身份登录

ubuntu.exe config --default-user flyboy

压缩系统镜像文件

先使用命令行来检查 wsl 状态,若为 running 需关闭它。

wsl --list --verbose

wsl --shutdown

使用 diskpart 压缩 wsl 虚拟磁盘

在命令行启动 diskpart 工具:

diskpart

确定虚拟磁盘文件的位置,用 diskpart 选择这个文件:

select vdisk file="{vhdx文件名}"

select vdisk file="E:\EnvironmentSetting\CPP\UbuntuWSL\ext4.vhdx"

# DiskPart 已成功选择虚拟磁盘文件。

再执行压缩命令:

detach vdisk

attach vdisk readonly    // "所请求的操作需要以只读方式"  请执行这一步

compact vdisk

exit

注意:在执行任何磁盘操作之前,最好备份重要数据并谨慎操作,以免造成数据丢失或其他意外情况。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1092529.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MyBatis自定义映射resultMap,处理一对多,多对一

1、自定义映射resultMap 复习&#xff1a;查询的标签select必须设置属性resultType或resultMap&#xff0c;用于设置实体类和数据库表的映射 关系 resultType&#xff1a;自动映射&#xff0c;用于属性名和表中字段名一致的情况 &#xff08;或设置了下划线映射为驼峰&#x…

qemu基础篇——VSCode 配置 GDB 调试

文章目录 VSCode 配置 GDB 调试安装 VSCode 插件调试文件创建调试配置配置脚本qemu 启动脚 启动调试报错情况一报错情况二报错情况三 调试界面运行 GDB 命令查看反汇编断点查看内核寄存器查看变量参考链接 VSCode 配置 GDB 调试 上一节中直接使用 GDB 命令行调试&#xff0c;本…

基于海洋捕食者优化的BP神经网络(分类应用) - 附代码

基于海洋捕食者优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于海洋捕食者优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.海洋捕食者优化BP神经网络3.1 BP神经网络参数设置3.2 海洋捕食者算法应用 4…

JVM字节码指令详解

文章目录 前言一、JVM字节码指令概述1. 什么是JVM字节码指令&#xff1a;2. 字节码指令的作用&#xff1a;3. 字节码指令的分类&#xff1a; 二、字节码指令的种类1. 加载和存储指令2. 算术指令3. 类型转换指令4. 对象和数组操作指令5. 操作数栈管理指令6. 控制转移指令7. 方法…

在emacs中,设置latex的主文档

文档&#xff1a; chapter1.tex chapter2.tex main.tex 在chapter1.tex中&#xff0c;先按下 ctrlc ctrln&#xff0c;再按下ctrlc ctrla&#xff0c;在下方的提示框中输入主文档。

链路层3:VLAN的配置与分析

VLAN的帧格式 VLAN数据帧的传输 在以太网中&#xff0c;加了标签tag的VLAN数据帧我们叫做V-MAC帧&#xff0c;普通的数据帧我们叫做MAC帧。对于主机来说&#xff0c;它只认识普通的MAC帧&#xff1b;对于主机&#xff0c;V-MAC帧和MAC帧它都认。所以&#xff0c;实际上的V-MAC…

docker中使用GPU+rocksdb

配置环境 delldell-Precision-3630-Tower  ~  lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.6 LTS Release: 20.04 Codename: focaldelldell-Precision-3630-Tower  ~  nvcc --version nvcc: NVIDIA (R) Cuda comp…

如果C盘满了怎么办

相信这个问题是困扰了很多人的。 1、清理 1.1清理缓存 这种适合一些小白&#xff0c;清理C盘中的缓存&#xff0c;但是治标不治本。上正文 &#xff08;1&#xff09;打开电脑&#xff0c;输入winr &#xff08;2&#xff09;输入%temp% 该文件目录下全是缓存文件可以删除&…

2023年京东双11红包领取入口口令活动时间是从什么时候开始到几月几号结束如何领取2023京东双十一红包优惠券?

2023年京东双11红包领取活动时间是什么时候&#xff1f; 京东双11红包领取活动时间将于2023年10月23日00:00开始至11月11日23:59结束&#xff1b; 2023年京东双11红包领取入口在哪里如何天天免费领取&#xff1f; 2023年京东双11红包口令「红包到手677」&#xff0c;请在活动…

完美解决lftp遇到put: Access failed: 553 Could not create file.

目录 一、问题 二、原因 三、解决方法 一、问题 put: Access failed: 553 Could not create file. 二、原因 &#xff08;1&#xff09;没有关闭SeLinux &#xff08;2&#xff09;linux默认安装vsftp服务之后只允许匿名用户的访问和下载&#xff0c;不支持上传。 三、解决方…

【Java】nextInt()后面紧接nextLine()读取不到数据/InputMismatchException异常的解决方案

错误如下&#xff1a; 有时候还会抛出InputMismatchException异常 看&#xff01;我只输入了一个5&#xff0c;并没有给str赋值&#xff0c;它就已经将结果打印出来了&#xff01;这就意味着&#xff0c;str是读取到了数据的&#xff0c;只不过这个数据并不是我们想要的输入的…

unity ugui text 超链接和下划线,支持部分富文本格式

unity版本&#xff1a;2021.3.6f1 局限性&#xff1a; 1.测试发现不能使用 size 富文本标签, 2.同一文本不能设置不同颜色的超链接文本 其它&#xff1a;代码中注释掉使用innerTextColor的地方&#xff0c;可以使用富文本设置超链接颜色&#xff0c; 但是下划线是文本本身颜色 …

Mybatis学习笔记注解/xml映射/动态SQL%%%Mybatis教程

介绍 Mybatis 是一款优秀的持久层框架&#xff0c;用于简化 JDBC 的开发 MyBatis中文网 Mybatis 入门 快速入门 步骤 创建 SpringBoot 工程、数据库表 user、实体类 User引入 Mybatis 相关依赖&#xff0c;配置 Mybatis&#xff08;数据库连接信息&#xff09;编写 SQL 语…

adb调试Linux嵌入式设备记录

1. ADB的全称为Android Debug Bridge&#xff0c;调试设备或调试开发的Android APP。 2.adb的windows下载安装路径&#xff1a;SDK 平台工具版本说明 | Android 开发者 | Android Developers 3.linux中安装adb,参考该链接&#xff1a; https://www.cnblogs.com/androidsu…

Springboot+vue的财务管理系统(有报告),Javaee项目,springboot vue前后端分离项目。

演示视频&#xff1a; Springbootvue的财务管理系统&#xff08;有报告&#xff09;&#xff0c;Javaee项目&#xff0c;springboot vue前后端分离项目。 项目介绍&#xff1a; 本文设计了一个基于Springbootvue的前后端分离的财务管理系统&#xff0c;采用M&#xff08;model…

基于Seata的分布式事务方案

在Seata中&#xff0c;有4种分布式事务实现方案 XA、AT、TCC、Saga 其中XA利用了数据库的分布式事务特性&#xff0c;AT相当于框架去控制事务回滚。TCC手写三个方法&#xff0c;saga手写两个方法。 AT的性能和编写比较折中&#xff0c;是最常用的一种。TCC一些视频教程中介绍…

windows系统安装openssl并且转换证书格式

概述 碎碎念&#xff0c;如果你有MAC电脑&#xff0c;就别折腾了&#xff0c;直接用MAC电脑吧,不用安装直接用openssl 本文主要讲到了openssl的基本使用方法&#xff0c;开发环境为windows&#xff0c;开发工具为VS2019.本文主要是说明openssl如何使用&#xff0c;不介绍任何理…

判断某点是否在三角形内(Python)

已知三角形的三个顶点坐标&#xff0c;判断某个点是否在三角形中&#xff08;在三角形的边上&#xff0c;我们也视作在三角形中&#xff09;&#xff0c;我们提供不同的方法。 方法1&#xff1a;内角和等于360 方法2&#xff1a;等面积法 即对于△ABC内的某一点P&#xff0c;…

LInux文件权限相关知识介绍

LInux文件权限相关知识分享&#x1f60e; 前言&#x1f64c;Linux相关权限的概念&#xff1a;文件类型基本权限文件访问权限的相关设置方法chmod① 用户表示符/-权限字符②三位8进制数字 总结撒花&#x1f49e; &#x1f60e;博客昵称&#xff1a;博客小梦 &#x1f60a;最喜欢…

java+springboot+vue高校毕业生就业统计管理系统022xr

系统的设计与实现采用Spring、SpringMVC和MyBatis作为主体框架,系统设计遵循界面层、业务逻辑层和数据访问层的Web开发三层架构。采用B/S结构,使得系统更加容易维护。系统的设计与实现主要实现角色有管理员和用户,管理员在后台管理用户表模块、token表模块、生源信息模块、招聘…