clangd 依赖 compile_commands.json 文件来获取项目的编译命令和头文件路径。根据你的项目构建工具,可以采用以下方法生成:

  • 对于 CMake 项目‌:在项目的 CMakeLists.txt 文件中添加 set(CMAKE_EXPORT_COMPILE_COMMANDS ON),然后重新构建项目即可生成该文件。
  • 对于 Makefile 项目‌:可以使用 bear 工具。在项目目录下执行 bear -- make 命令(或 bear make),bear 会拦截编译过程并生成 compile_commands.json 文件。

生成后,确保 compile_commands.json 文件位于项目的根目录下,或者你在 VSCode 的 clangd 设置中手动指定其绝对路径3。

关键:

1.检查vscode中C++ 插件智能提示是否关闭(或者直接卸载C++插件)

2.对于CMake Makefile 。保证第三方头文件路径设置是否正确。

3.确保 compile_commands.json 文件位于项目的根目录下

(或者在根目录创建compile_commands.json,然后通过软链接 依赖到cmake中build下的compile_commands.json。)

# 在项目根目录执行(假设 build 目录路径如下)
ln -s out/build/Cameradetection/compile_commands.json ./compile_commands.json
补充:

在vscode中添加文件

内容如下:

{
    "clangd.path": "clangd-18",
    "clangd.arguments": [
        "--background-index",
        "--clang-tidy",
        "--query-driver=/usr/bin/aarch64-linux-gnu-g++",
    ]
}

备注:clangd 版本为 18(比较好用) 

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐