记录一次clangd的踩坑
前言
最近又开始想用 wsl 写 c++,然后发现以前装的 clangd-14 无视我编译数据库当中的 -std=c++23,十分难受,因此用 github release 上面的源码安装一次。
问题
很逆天的问题,直接 include iostream 时,clangd 报错 "stddef.h not found"
。很好,血压直接上来了。
解决
查了一下资料,我的 clangd 放在 /usr/bin
下面,clangd 查一些标准库头文件会去 ../lib/clang/(version)/
下面查找。因此我需要把下载的 lib
文件夹丢到 /usr
下面去,最终完整路径应该是:/usr/lib/clang/19
。
解决了吗?回到 vscode,clangd 继续报逆天的 "stddef.h not found"
。
无奈,在 vscode 当中打开 clangd 的日志,居然发现:1
2
3
4
5
6/home/ubuntu2204/gcc131/bin/g++
--driver-mode=g++
-g -std=c++23
-o CMakeFiles/co_cpp.dir/main.cpp.o
-c -resource-dir=/usr/lib/llvm-14/lib/clang/19
-- /home/nico/cpp/co_cpp/main.cpp
WTF?这个 -c -resource-dir=/usr/lib/llvm-14/lib/clang/19
是咋设置出来的,找了一下未果,直接把 lib cp 过去。最终完美解决
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 nico233's blog!