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