我最近从 ctags 切换到 clangd,以便在 neovim 中获得更好的 lsp 支持。现在 clangd 无法识别我的本地包含目录。
我尝试了以下 .clangd 文件,但没有成功(第一个文件至少宏起作用了,这很重要)
CompileFlags:
Add:
- -I./include
- -I./lib
- -D_GNU_SOURCE
- -DSHELL="/bin/sh"
CompileFlags:
Add: [-D_GNU_SOURCE, -DSHELL="/bin/sh", -I./include, -I./lib]
.clangd 文件位于项目根目录,但就是无法工作。这是怎么回事?
clangd 不支持相对路径
CompileFlags
;请参阅https://github.com/clangd/clangd/issues/1038。正确的解决方案显然是使用
compile_flags.txt
或compile_commands.json
文件。Stack Overflow 上的相关帖子(其中的答案建议使用
CompileFlags
,.clangd
但他们似乎忽略了提到这仅适用于绝对路径):