Visual Studio Code clangd扩展配置

6
我将尝试使用vscode-clangd插件将clangd与VS Code集成,但是我在配置包含路径时遇到了问题...
我在VS Code设置中创建了额外的配置:
"clangd.path": "path_to_clangd/bin/clangd",
"clangd.arguments": [
    "-compile-commands-dir=path_to_commands/compile_commands.json"
]

但是这个扩展程序报告了许多缺失的包含错误。
我也尝试过:
    "-compile-commands-dir=path_to_commands"

但这也没有起作用。

有人知道如何配置这个扩展吗?我现在找不到任何文档。

谢谢


你为什么没有将一个答案标记为解决方案? - Simon Sobisch
这个回答解决了你的问题吗?如何设置支持clangd的VS Code用于C++开发? - undefined
3个回答

7
你的路径应该是目录,指向compile_commands.json文件,需要通过vscode-clangd扩展来重新启动clangd。 settings.json
{
    "cmake.buildDirectory": "${workspaceFolder}/debug",
    "clangd.arguments": [
        "-background-index",
        "-compile-commands-dir=debug"
    ],
}

重新启动

  1. 在您的项目根目录下稍微修改.clang-tidy文件,如果没有则创建一个并添加内容
  2. vscode-clangd将提示您重新启动clangd
  3. 检查clangd进程,它应该类似于
❯ ps -Af | grep clangd
awei     285478 282126  0 10:42 ?        00:00:03 /opt/llvm-10.0.0/bin/clangd -background-index -compile-commands-dir=debug

3

看起来编译命令.json必须在文件夹根目录中才能被扩展程序找到。

我只是添加了一个符号链接:

ln -s /path-to-build-dir/compile_commands.json /path-to-src-root-dir/

3
这是我的答案,它有效:

    "clangd.path": "/Users/jiewang/Library/Application Support/Code/User/globalStorage/llvm-vs-code-extensions.vscode-clangd/install/11.0.0/clangd_11.0.0/bin/clangd",
    "clangd.arguments": [
        "--compile-commands-dir=${workspaceFolder}/build",
        "--completion-style=detailed",
        "--header-insertion=never"
    ],

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接