WSL 配置 Linux
WSL 配置 Linux
Windows 启动 Linux 子系统
控制面板 -> 程序和功能, 将 适用于 Linux 的 Windows 子系统 勾选。
安装 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-configsudo 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 --verbosewsl --shutdown
使用 diskpart
压缩 wsl 虚拟磁盘
在命令行启动 diskpart
工具:
diskpart
确定虚拟磁盘文件的位置,用 diskpart
选择这个文件:
select vdisk file="{vhdx文件名}"select vdisk file="E:\EnvironmentSetting\CPP\UbuntuWSL\ext4.vhdx"# DiskPart 已成功选择虚拟磁盘文件。
再执行压缩命令:
detach vdiskattach vdisk readonly // "所请求的操作需要以只读方式" 请执行这一步compact vdiskexit
注意:在执行任何磁盘操作之前,最好备份重要数据并谨慎操作,以免造成数据丢失或其他意外情况。
相关文章:

WSL 配置 Linux
WSL 配置 Linux Windows 启动 Linux 子系统 控制面板 -> 程序和功能, 将 适用于 Linux 的 Windows 子系统 勾选。 安装 Terminal 在 Microsoft Store 市场上搜索 Terminal 安装 Windows Terminal。 安装 编译工具链 sudo apt update # 更新软件包 sudo apt i…...

VS Code:CMake配置
概述 在VSCode和编译器MinGW安装完毕后,要更高效率的进行C/C开发,采用CMake。CMake是一个开源、跨平台的编译、测试和打包工具,它使用比较简单的语言描述编译,安装的过程,输出Makefile或者project文件,再去…...

Flex 词法分析实验实现(电子科技大学编译技术Icoding实验)
Flex 词法分析 此为电子科技大学编译技术 实验1:词法分析 将具体实现中的三个文件和自己的实验报告一起上传才能通过 根据词法分析实验中给定的文法,利用 flex 设计一词法分析器,该分析器从标准输入读入源代码后,输出单词的类别编…...
设计模式——20. 解释器模式
1. 说明 解释器模式(Interpreter Pattern)是一种行为型设计模式,它用于定义一门语言的语法解析,并为该语言创建解释器。该模式将一个问题或领域表达成一个语言,然后提供一个解释器来解释这种语言中的表达式,以执行特定操作。 要点和组成部分: 抽象表达式(Abstract Ex…...

多输入多输出 | MATLAB实现CNN-BiLSTM-Attention卷积神经网络-双向长短期记忆网络结合SE注意力机制的多输入多输出预测
MATLAB实现CNN-BiLSTM-Attention卷积神经网络-双向长短期记忆网络结合SE注意力机制的多输入多输出预测 目录 MATLAB实现CNN-BiLSTM-Attention卷积神经网络-双向长短期记忆网络结合SE注意力机制的多输入多输出预测预测效果基本介绍程序设计往期精彩参考资料 预测效果 基本介绍 C…...

一文让你玩转Linux多进程开发
Linux多进程开发 主要介绍多进程开发时的要点 进程状态转换 进程反应了进程执行的变化。 进程的状态分为三种 ,运行态,阻塞态,就绪态 在五态模型中分为以下几种,新建态,就绪态,运行态,阻塞态,终止态。 运行态:进程占用处理器正在运…...

Linux线程同步实例
线程同步实例 1. 生产消费者模型基本概念2. 基于BlockingQueue的生产者消费者模型3. 基于环形队列的生产消费模型4. 线程池 1. 生产消费者模型基本概念 生产者消费者模型是一种常用的并发设计模式,它可以解决生产者和消费者之间的速度不匹配、解耦、异步等问题。生…...
LuatOS-SOC接口文档(air780E)-- iconv - iconv操作
iconv.open(tocode, fromcode)# 打开相应字符编码转换函数 参数 传入值类型 解释 string 释义:目标编码格式 取值:gb2312/ucs2/ucs2be/utf8 string 释义:源编码格式 取值:gb2312/ucs2/ucs2be/utf8 返回值 返回值类型 解…...

matlab第三方硬件支持包下载和安装
1、在使用matlab内部的附加功能安装时,由于matlab会验证是否正版无法打开 2、在matlab官网直接找到对应的硬件支持包下载,但是是下图的安装程序 可以直接在matlab中跳转到该程序所在的文件夹双击安装,但是安装到最后出错了 3.根据出错时mala…...

docker compose和consul(服务注册与发现)
一、Docker-compose 简介 Docker-Compose项目是基于Python开发的Docker官方开源项目,负责实现对Docker容器集群的快速编排。 Docker-Compose将所管理的容器分为三层,分别是 工程(project),服务(service&a…...

使用Python进行钻石价格分析
钻石是最昂贵的宝石之一。钻石的质量通常以其重量(克拉)、净度、颜色和切工来评估。重量越大、净度越高、色彩纯净、切工精细的钻石价格也越高。其中,4C标准是衡量钻石质量的国际标准,即克拉(Carat)、净度&…...
Java日期查询
本实例使用有关日期处理和日期格式化的类实现一个日期查询的功能,即查询指定日期所在周的周一日期、两个指定日期间相差的天数和指定日期为所在周的星期几的日期 3 个功能。 从功能上来看,本实例至少需要定义 3 个方法,分别完成:获…...

uniapp 运行到 app 报错 Cannot read property ‘nodeName‘ of null
uniapp 运行到某一个页面,报错,h5没有问题 Unhandled error during execution of scheduler flush. This is likely a Vue internals bug. Please open an issue at https://new-issue.vuejs.org/?repovuejs/coreat <GuiPagecustomHeadertruecustomF…...
Mac M1通过homebrew安装Redis报错(perl: unknown or unsupported macOS version: :dunno)
〇、解决方案 升级homebrew,命令如下: brew update-reset一、问题现象 通过命令brew install redis安装Redis,异常如下: fatal: not in a git directory Warning: No remote origin in /opt/homebrew/Library/Taps/homebrew/h…...

如何在 Spring Boot 中进行分布式追踪
在 Spring Boot 中进行分布式追踪 分布式系统中的应用程序由多个微服务组成,它们可以位于不同的服务器、容器或云中。当出现问题时,如性能瓶颈、错误或延迟,了解问题的根本原因变得至关重要。分布式追踪是一种用于跟踪和分析分布式应用程序性…...
Lniux三剑客——Grep
前言 echo guangge{01…100…2} 第二个是间隔多少个计数 命令别名 alias, unalias , 作用是封装命令: alias rm ‘rm -i’ 命令历史 history !行号 !! 上一次的命令 ctrl a 移动到行首 ctrl e 移动到行尾 Grep 格式: gre…...

选实验室超声波清洗机易忽视的内容?小型清洗机的优点有?
实验室超声波清洗机如今在行业内占据着重要的一席之地,摒弃了传统模式,坚持以超声波为主的清洗方式,在市场中获得的反响强烈。服务好,有诚信的实验室超声波清洗机能够消除客户的后顾之忧,工作人员会以真诚态度向客户提…...

基于Java使用SpringBoot+Vue框架实现的前后端分离的美食分享平台
✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介绍: 在当今社会࿰…...
开源数据库MySQL 8.0 OCP认证精讲视频、环境和题库 之二
修改用户的初始密码: mysql>alteruserrootlocalhostidentifiedbyQaz1234; 或者: mysql>alteruseruser0identifiedbyQaz_1234; 在版本5.x中: mysql>setpasswordpassword(Qaz_1234); 可执行文件: 服务器端&…...

AI对网络安全的影响与挑战
近年来,随着人工智能(AI)技术的快速发展,网络安全领域也开始逐渐引入生成式AI应用。根据最新的数据研究,生成式AI对网络安全和合规的影响最大,同时也包括了IT和云的运维、硬件和软件支持领域。通过AI和自动…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...

华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
C# SqlSugar:依赖注入与仓储模式实践
C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...
Caliper 配置文件解析:fisco-bcos.json
config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...
HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散
前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说,在叠衣服的过程中,我会带着团队对比各种模型、方法、策略,毕竟针对各个场景始终寻找更优的解决方案,是我个人和我司「七月在线」的职责之一 且个人认为,…...
DiscuzX3.5发帖json api
参考文章:PHP实现独立Discuz站外发帖(直连操作数据库)_discuz 发帖api-CSDN博客 简单改造了一下,适配我自己的需求 有一个站点存在多个采集站,我想通过主站拿标题,采集站拿内容 使用到的sql如下 CREATE TABLE pre_forum_post_…...

若依登录用户名和密码加密
/*** 获取公钥:前端用来密码加密* return*/GetMapping("/getPublicKey")public RSAUtil.RSAKeyPair getPublicKey() {return RSAUtil.rsaKeyPair();}新建RSAUti.Java package com.ruoyi.common.utils;import org.apache.commons.codec.binary.Base64; im…...

ui框架-文件列表展示
ui框架-文件列表展示 介绍 UI框架的文件列表展示组件,可以展示文件夹,支持列表展示和图标展示模式。组件提供了丰富的功能和可配置选项,适用于文件管理、文件上传等场景。 功能特性 支持列表模式和网格模式的切换展示支持文件和文件夹的层…...
基于 HTTP 的单向流式通信协议SSE详解
SSE(Server-Sent Events)详解 🧠 什么是 SSE? SSE(Server-Sent Events) 是 HTML5 标准中定义的一种通信机制,它允许服务器主动将事件推送给客户端(浏览器)。与传统的 H…...