Windows 下开发 Linux C++ 程序,头文件总是提示问号,每次开虚拟机也让人不爽。最近在 wsl 中折腾了一番,似乎是不用启动虚拟机了,直接在 wsl 中使用 vsc 或 eclipse。


进入 wsl2,查看内核版本

uname -r

这边 Ubuntu 20.04 是

5.10.102.1-microsoft-standard-WSL2

下载这个版本的 wsl 内核源代码

wget https://github.com/microsoft/WSL2-Linux-Kernel/archive/refs/tags/linux-msft-wsl-5.10.102.1.tar.gz
tar vzxf *.tar.gz

编译内核,这个时间比较长。编译时最好关闭 wd,不然内存可能要爆

sudo apt install libelf-dev build-essential pkg-config bison build-essential flex libssl-dev libelf-dev bc
cd WLS2*
zcat /proc/config.gz > .config
make -j $(nproc)
ls /lib/modules

看到有内核源码文件,指向刚解压的目录。

安装头文件

sudo make -j $(nproc) headers_install

果然,这样 vscode 中有了头文件了。


经同事测试,如果将编译相关文件复制到虚拟机内部就不会那么慢。