我刚开始开发 Win32 应用程序,我正在 Neovim 中进行编辑。我正在运行 WSL 并使用 clangd 作为我的 LSP。为了编译我正在使用 Microsoft cl 并且它正在构建二进制文件。
我正在重构一些代码,当我将我的 #include <dsound.h>
从它的原始 main.cpp 移动到一个新的头文件 (windows_sound.h) 时,我遇到了一个奇怪的 LSP 错误。我的 LSP 给我以下投诉:clang: In included file: unknown type name 'interface'.
即使它是文件中唯一的东西(不包含守卫),也会出现此错误。但是,如果我将包含移动到一个空的 .cpp (windows_sound.cpp) 中,LSP 不会给我任何错误。知道发生了什么事吗?
我的.clangd:
CompileFlags:
Add:
- "--target=x86_64-w64-windows-gnu"
- "-std=c++20"
- "-fms-extensions"
- "Wall"
- "-isystem/usr/share/mingw-w64/include/"
我的clangd版本:15.0.6
nvim 版本:0.8.0-1210
我在配置中做的唯一额外的事情是我将 clangd 命令修改为:
cmd =
{
"clangd",
"--header-insertion=never",
},