0

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

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

4

2 回答 2

0

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

在我添加的工作区设置中

    "cmake.copyCompileCommands": "${workspaceFolder}/compile_commands.json"

这会将构建目录的 compile_commands.json 复制到工作区文件夹,在我的情况下,这恰好是 clangd 正在寻找 compile_commands.json 文件的位置。

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

于 2021-11-02T15:19:29.993 回答
0

我通常通过将一个编译数据库符号链接到源目录来解决这个问题。哪一个取决于我做什么——主要是我最常使用的“标准”构建。还有其他专门的构建,但如果我真的需要不同的设置,我只会切换到相应的 compdb。

于 2021-11-01T13:22:26.920 回答