VS Code + WSL2 搭建 xv6-labs 开发环境
概述
踩了好多坑,值得记录一下。
WSL2 的代理设置
.bashrc
里的设置:
setup_proxy () {
export ALL_PROXY="http://$(hostname).local:7890"
export http_proxy="http://$(hostname).local:7890"
export https_proxy="http://$(hostname).local:7890"
export no_proxy=localhost
}
WSL2 和 WSL 不一样,其不再直接能访问宿主机的端口,
并且也不能直接使用 ipconfig
查询到的虚拟局域网的 IP,因为这个是会变的。
所以上面使用的是 $(hostname).local
。
7890
是我本机代理的暴露端口。
为什么上面要用到函数的形式呢?原因在于 VS Code 的 WSL 插件会在 WSL 内设置代理后变得无法使用, 表现为巨卡无比,插件列表要加载一万年,代码提示和跳转都无法使用。
Clangd 基本设置
完成本步骤后 VS Code 的代码提示功能以及代码跳转功能应当可用。
- 在 VS Code 中安装
C/C++
&clangd
插件。 - 在 WSL 中安装
clangd
:sudo apt-get install clangd-12 sudo update-alternatives --install /usr/bin/clangd clangd /usr/bin/clangd-12 100
- 为
clangd
生成compile_commands.json
:
注意,如果没有生成成功原因可能在于你之前已经执行过sudo apt-get install bear bear -- make qemu # Ctrl + A X to exit
make
了,在相关源代码中随便加一个空行再执行上述命令即可。