clangd for vscode 具有多个构建目录

jjc*_*mar 2 visual-studio-code clangd

我正在尝试使用 clangd 在 vscode 中完成代码。我正在使用 CMake 进行项目设置,并创建一个编译数据库。但是,我有几个具有不同标志的构建目录(调试、发布...),并且 clangd 要求在源目录中包含编译数据库。这是不可能的,因为每种构建类型的编译数据库都不同......

当您有多种构建类型时,有什么方法可以使用 clangd 吗?

jjc*_*mar 7

我使用 VSCode cmake 工具功能解决了这个问题。

在我的工作区的设置中我添加了

    "cmake.copyCompileCommands": "${workspaceFolder}/compile_commands.json"
Run Code Online (Sandbox Code Playgroud)

这会将构建目录的compile_commands.json复制到工作区文件夹,在我的例子中,这恰好是clangd正在寻找compile_commands.json文件的地方。

如果我更改预设,则会再次复制新的compile_commands.json,以便更新clangd模型。