我正在尝试使用clangd在vscode中完成代码。我正在使用CMake进行项目设置,并且正在创建一个编译数据库。但是,我有几个带有不同标志的构建目录(Debug、Release...)clangd需要将编译数据库放在源目录中。这是不可能的,因为每种构建类型的编译数据库都是不同的...
当你有多种构建类型时,有没有办法使用clangd?
发布于 2021-11-01 13:22:27
我通常通过将一个编译数据库符号链接到源目录来解决这个问题。哪一个取决于我做了什么--主要是我最常使用的“标准”构建。还有其他专门的构建,但是如果我真的需要不同的设置,我只会切换到相应的compdb。
发布于 2021-11-02 15:19:30
我用VSCode的cmake工具特性解决了这个问题。
在我的工作区设置中,我添加了
"cmake.copyCompileCommands": "${workspaceFolder}/compile_commands.json"这会将构建目录的工作区复制到compile_commands.json文件夹中,在我的例子中,恰好是clangd查找compile_commands.json文件的位置。
如果我更改预设,则会再次复制新模型中的新compile_commands.json,以便更新clangd模型。
https://stackoverflow.com/questions/68885293
复制相似问题