• WSL 配置 Linux


    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    # 构建加速、自动化构建
    
    • 1
    • 2
    • 3
    • 4
    • 5

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

    cmake --version
    gcc -v
    g++ -v
    ninja --version
    
    • 1
    • 2
    • 3
    • 4

    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
    
    • 1
    • 2
    • 3

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

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

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

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

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

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

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

    vcpkg version
    
    • 1

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

    rm -rf vcpkg.tar.gz
    
    • 1

    测试 vcpkg

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

    sudo apt-get install pkg-config
    
    sudo vcpkg install tbb:x64-linux
    
    • 1
    • 2
    • 3

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

    sudo vcpkg list
    
    • 1

    卸载 vcpkg

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

    sudo rm -rf /opt/vcpkg
    
    • 1

    删除符号链接:

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

    删除 vcpkg 缓存和相关目录:

    sudo rm -rf /root/.cache/vcpkg
    sudo rm -rf /root/.vcpkg
    rm -rf ~/.vcpkg
    
    • 1
    • 2
    • 3

    测试 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",
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    项目根目录下新建 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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    迁移 WSL

    查看系统版本

    wsl -l -v
    
    • 1

    关闭系统

    wsl --shutdown
    
    • 1

    迁移系统

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

    迁移后注销原系统

    wsl --unregister Ubuntu
    
    # 查看是否真的注销成功
    wsl -l -v
    
    • 1
    • 2
    • 3
    • 4

    导入系统

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

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

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

    ubuntu.exe config --default-user flyboy
    
    • 1

    压缩系统镜像文件

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

    wsl --list --verbose
    
    wsl --shutdown
    
    • 1
    • 2
    • 3

    使用 diskpart 压缩 wsl 虚拟磁盘

    在命令行启动 diskpart 工具:

    diskpart
    
    • 1

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

    select vdisk file="{vhdx文件名}"
    
    select vdisk file="E:\EnvironmentSetting\CPP\UbuntuWSL\ext4.vhdx"
    
    # DiskPart 已成功选择虚拟磁盘文件。
    
    • 1
    • 2
    • 3
    • 4
    • 5

    再执行压缩命令:

    detach vdisk
    
    attach vdisk readonly    // "所请求的操作需要以只读方式"  请执行这一步
    
    compact vdisk
    
    exit
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

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


  • 相关阅读:
    为什么Spring不建议使用基于字段的依赖注入
    第17章 注销器的泛型实现
    EasyExcel实现对excel文件读写
    USB3.0 host xHCI驱动
    匹配子序列问题
    测试人员如何打造自己的核心影响力
    ICPC-2022网络赛第二场
    【嵌入式学习】--Uart串口
    【光学】基于matlab色散曲线拟合【含Matlab源码 2053期】
    《嵌入式虚拟化技术与应用》:深入浅出阐述嵌入式虚拟机原理,实现“小而能”嵌入式虚拟机!
  • 原文地址:https://blog.csdn.net/qq_45927003/article/details/132097131