Win11LTSC(24H2)配置C++开发环境

恢复应用商店

按下win+x打开管理员PowerShell,并输入如下命令

1
wsreset -i

安装Windows终端和PowerShell7

在应用商店搜索安装即可

再次按下win+x打开终端管理员,设置默认终端

安装WSL2(kali-linux)

在Windows终端输入

1
wsl --install -d kali-linux

这个命令将会启用虚拟机平台, WSL等功能,并安装内核更新包和kali-linux发行版, 对于手动安装过程,请参考WSL开发环境搭建(kali-linux篇)

之后重启系统

配置kali-linux

设置用户名, 切换终端

在开始菜单选中kali-linux并打开, 完成后续的安装后提示输入用户名, 最好输入全小写字母的名字, 并设置好密码

使用chsh -s /usr/bin/zsh切换终端为zsh, 接着输入exit退出

再次通过开始菜单进入, 检查zsh语法高亮是否正常

重置root密码

输入sudo su, 并输入刚刚设置的(管理员)密码, 进入root用户, 接着输入passwd修改root密码, 再输入exit退出root用户

把WSL迁移到D盘

打开Windows终端,输入下列命令:

1
2
3
4
5
6
7
8
wsl --shutdown
mkdir D:\wsl
mkdir D:\wsl\kali
wsl --export kali-linux D:\wsl\kali.tar # 导出kali
wsl --unregister kali-linux # 注销原来的发行版
wsl --import kali-linux D:\wsl\kali D:\wsl\kali.tar --version 2 # 导入kali
rm D:\wsl\kali.tar # 删除tar文件
wsl -d kali-linux # 进入kali

迁移后默认以root身份进入,接下来进入WSL,用nano编辑/etc/wsl.conf文件。假设yoimiya是之前的默认用户名:

1
2
3
4
5
[boot]
systemd=true

[user]
default=yoimiya

按下Ctrl+o写入再按下Ctrl+x退出nano编辑器, 再退出WSL

换源并更新系统

提示: Windows终端支持鼠标右键粘贴

1
2
sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
sudo nano /etc/apt/sources.list

编辑 /etc/apt/sources.list 文件, 在文件最前面添加以下条目:

1
2
deb https://mirrors.ustc.edu.cn/kali kali-rolling main non-free non-free-firmware contrib
deb-src https://mirrors.ustc.edu.cn/kali kali-rolling main non-free non-free-firmware contrib

保存退出编辑器

输入sudo apt update && sudo apt upgrade -y即可更新系统

(可选)进阶设置WSL

开始菜单找到WSL Settings, 启用镜像网络模式以及逐渐释放内存等功能

Windows安装vscode

安装过程省略, 安装完成后记得重启电脑, 打开vscode后, 自行安装主题和中文语言包, 接着安装Remote Development拓展包

在kali-linux上安装C++工具链

在WSL内输入sudo apt install build-essential clang clangd llvm lldb

安装完成后退出WSL并执行wsl --shutdown, 接着重新打开kali-linux, 输入cd切换为主目录, 再输入code .打开vscode

安装C++拓展

安装如图所示的几个拓展, 这里安装了6个(安装不成功则需要解决代理问题, 上面的镜像网络模式可以很方便解决这个问题)

测试开发环境

在windows的资源管理器左侧打开WSL的目录, 在主目录/home/yoimiya/新建cpp_test文件夹, 并新建一个cpp文件和.vscode文件夹

kali-linux的终端内输入cd /home/yoimiya/cpp_testcode .打开目录, 编写示例代码, 鼠标左键单击行添加断点

.vscode文件夹内新建tasks.json文件, 并写入下列内容, 意思是调试时自动编译, 调试完成后自动删除可执行文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "clang++",
"args": [
"-g",
"-o",
"${workspaceFolder}/main",
"${file}"
],
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": []
},
{
"label": "clean",
"type": "shell",
"command": "rm",
"args": [
"${workspaceFolder}/main"
],
"problemMatcher": []
}
]
}

接着新建launch.json文件, 是codelldb调试器的配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "lldb",
"request": "launch",
"name": "Debug",
"program": "${workspaceFolder}/main",
"args": [],
"cwd": "${workspaceFolder}",
"preLaunchTask": "build",
"postDebugTask": "clean"
}
]
}

编辑完成后, 按F5启动调试, 顶部有调试选项, 比如继续, 单步调试, 逐过程等, 在左边可以查看变量的值

结束调试后, 会自动删除二进制文件

如果选择以非调试模式运行,则会执行tasks.json的内容, 编译并运行代码, 输出在右下角的Debug终端, 如果不想自动删除可执行文件, 删除tasks.jsonclean内容, 以及launch.json里的"postDebugTask": "clean"即可

补充说明

  • 可以选择安装GitHub Copilot拓展
  • 安装rust-analyzer拓展后, 可以使用codelldb调试rust代码
  • codelldb会为你生成launch.json, 如果一开始没有这个文件, 可以到左边调试选项卡选择创建

Win11LTSC(24H2)配置C++开发环境
https://rukkhadevata123.github.io/2024/10/06/win11-cpp/
作者
Dawn Chirps
发布于
2024年10月6日
许可协议