VsCode
安装
scoop install vscode
插件
- WSL - Visual Studio Marketplace (windows)
- C/C++ - Visual Studio Marketplace (wsl2/ubuntu)
- CMake - Visual Studio Marketplace(wsl2/ubuntu)
- CMake Tools - Visual Studio Marketplace(wsl2/ubuntu)
- Zig Language - Visual Studio Marketplace(wsl2/ubuntu)
WSL
wsl --version
WSL 版本: 2.0.9.0
内核版本: 5.15.133.1-1
WSLg 版本: 1.0.59
MSRDC 版本: 1.2.4677
Direct3D 版本: 1.611.1-81528511
DXCore 版本: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows 版本: 10.0.19045.3803
sudo apt-get install wget ca-certificates
sudo apt update
sudo apt-get install openssh-server g++ gdb make ninja-build rsync zip
sudo apt-get install cmake
C/C++
用VsCode连接到WSL,打开一个目录。
Ctrl+Shift+P -> CMake: Quick Start
选一套工具包
建一个项目, C++, Executable
直接开始调试
Zig
安装
- zig: 参照Install Zig from a Package Manager安装
- zls: 直接下载Releases · zigtools/zls (github.com)就丢到
/usr/bin
里面就可以
中间可能会遇到snap
无法安装软件的问题,是因为systemctl
在wsl
中不支持,可以参考WSL 中的高级设置配置来启用。
我是跑了DamionGans/ubuntu-wsl2-systemd-script这个脚本 (虽说已经unsupported,但是目前对我还是有效的)
这里有讨论snap
在wsl
中的问题
WSL2- Ubuntu 20.04 Snap store doesn't work due to systemd dependency · Issue #5126 · microsoft/WSL (github.com)
调试
- 打开
Wsl/Ubuntu
终端
cd ~
mkdir zello
cd zello
zig init-exe
zig build
- 用
VsCode
打开zello
目录,创建文件.vscode/launch.json
:
{
"version": "0.2.0",
"configurations": [
{
"name": "Zig Launch (Ubuntu)",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/zig-out/bin/zello",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": []
}
]
}
- F5, 开始调试
缓存目录
默认情况下,zig build
会生成两个目录:zig-out
和zig-cache
,可以使用参数--prefix
和--cache-dir
来指定:
zig build --prefix D:\Code\xkyss\xkyss.zpp\build\playz\v0.11\hello\zig-out --cache-dir D:\Code\xkyss\xkyss.zpp\build\playz\v0.11\hello\zig-cache
这里需要指定全目录,相对目录会报错:error: BadPathName
如果需要在VsCode调试调试,还需要修改一下.vscode/launch.json
,(调整cwd
和program
的目录):
{
"version": "0.2.0",
"configurations": [
{
"name": "Zig Launch (Windows)",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/../../../build/playz/v0.11/hello/zig-out/bin/hello.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}/../../../build/playz/v0.11/hello",
"environment": []
}
]
}
后记
其实不管是Windows、WSL、还是Remote Linux,只要安装了插件和工具链,都是可以开发且调试的