使用compile_commands.json配置includePath环境,解决vscode中引入头文件处有波浪线的问题

通过编译时生成的 compile_commands.json 文件自动完成对 vscode 中头文件路径的配置,实现 vscode 中的代码的自动跳转。完成头文件路径配置后,可以避免代码头部导入头文件部分出现波浪线,警告说无法正确找到头文件。

步骤

  1. 需要在 vscode 中安装 C++ 和 CMake Tools 扩展插件;
  1. 使用下述命令重新编译代码;
shell 复制代码
catkin_make -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXPORT_COMPILE_COMMANDS=Yes

这将会导出一个编译命令文件 compile_commands.json,这可以帮助 vscode 确定代码架构。该配置文件的的生成目录在工作空间的 build 文件夹下。

重新用 vscode 打开项目,可以看见在 .vscode 文件夹下生成的 c_cpp_properties.jsonsettings.json 文件。其中 c_cpp_properties.json 文件中的 includePath 参数中的头文件路径已经自动配置完成。

注意: 如果原先 .vscode 文件夹已经存在 c_cpp_properties.jsonsettings.json 文件的话,需要先手动删除,我测试的时候,好像不会覆盖重新生成,从而导致头文件路径无法自动添加。

此时,文件头部的波浪线已经消失了。如果没有,需要关闭该文件页面,然后重新打开。波浪线消失前后对比效果如下。

  1. 在文件 c_cpp_properties.json 中添加 compileCommands 选项;

也可以将 includePath 参数中的头文件路径全部删除,然后额外添加一个 compileCommands 参数,来指定生成的compile_commands.json 文件的位置,这也能够实现相同的效果。

shell 复制代码
"compileCommands": "${workspaceFolder}/build/compile_commands.json"

两种参数添加方式概览

这两部分内容,保留其一就好。同时,保留也没啥问题。

补充

在文件 c_cpp_properties.json 添加的路径,仅仅是用于 vscode 跳转显示用的,与代码编译过程无关。见参考链接 [2]

参考

1\] [vscode使用compile_commands.json配置includePath环境](https://blog.csdn.net/qq_37868450/article/details/105013325) \[2\] [VSCode改了include path仍找不到头文件是为什么? - Latria的回答 - 知乎](https://www.zhihu.com/question/647128206/answer/3419742896)

相关推荐
Hello World . .6 天前
Linux:线程间通信
linux·开发语言·vscode
被制作时长两年半的个人练习生6 天前
claude code for vscode 配置 qwen3.5
ide·vscode·claude code·qwen3.5
圣心6 天前
Visual Studio Code 中的 AI 智能操作
ide·人工智能·vscode
吹牛不交税6 天前
关于vscode左侧资源管理器目录层级疑似异常的问题
ide·vscode·编辑器
嵌入小生0076 天前
线程间通信---嵌入式(Linux)
linux·c语言·vscode·嵌入式·互斥锁·线程间通信·信号量
琛説6 天前
彻底解决 Codex / Copilot 修改中文乱码【含自动化解决方案】
vscode·copilot·codex
学嵌入式的小杨同学6 天前
嵌入式硬件开发入门:PCB 设计核心流程 + 基础元器件实战指南
vscode·后端·嵌入式硬件·架构·vim·智能硬件·pcb工艺
刘恒1234567896 天前
VSCODE
vscode
你怎么知道我是队长6 天前
VsCode插件推荐---Todo Tree
ide·vscode·编辑器
becatjd6 天前
VScode的claude code插件报错command ‘claude-vscode.editor.openLast‘ not found
ide·vscode·编辑器·claude·anthropic·claude code