Skip to main content

VsCode在Wsl2(Ubuntu)下的cpp/zig开发环境

· 3分钟阅读
xkyii

VsCode

安装

scoop install vscode

插件

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

安装

中间可能会遇到snap无法安装软件的问题,是因为systemctlwsl中不支持,可以参考WSL 中的高级设置配置来启用。

我是跑了DamionGans/ubuntu-wsl2-systemd-script这个脚本 (虽说已经unsupported,但是目前对我还是有效的)

这里有讨论snapwsl中的问题 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-outzig-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,(调整cwdprogram的目录):

{
"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,只要安装了插件和工具链,都是可以开发且调试的