VScode+ROS运行编写SLAM代码时,已经修改c_cpp_properties.json文件,头文件引用正确,没有报红。但引用的包中的某些变量报红。(源代码可以cmake通过且运行前提)

错误展示

        头文件引用正确,如果头文件报红,建议参考我这篇文章修改c_cpp_properties.json的incluePath:使用Vscode编写第一个ROS代码,实现输出helloworld(浅显易懂,无废话,一篇入门ROS)-CSDN博客

        头文件中引用某些命令空间报错,找不到对应变量等。 并且使用头文件中包含的包时无代码提示。

解决方法

        VScode打开文件后找到./vscode配置文件中的settings.json文件,在此文件中添加"C_Cpp.intelliSenseEngine": "Tag Parser"。

        修改后不仅上面的错误没有了,并且可以进行代码提示。非常nice。

 

        不建议在settings.json文件里添加如下变量完全禁止错误提示:

    "C_Cpp.errorSquiggles": "Disabled",

        此种方式只能浅显的解决报红问题,虽然表面上没有错误,但是也不会进行自动提示,代码补全,非常不方便。 

原理说明

        具体上述命令的原理可以参考下面简易版,想要深入学习的话建议自行百度

  1. "C_Cpp.intelliSenseEngine": "Tag Parser"

    • 这个设置项用于指定 VSCode 使用哪种智能感知引擎。
    • "Tag Parser" 是一个较旧的智能感知引擎,它使用标签文件(tags)来提供基本的代码自动完成和导航功能。这种方法通常比基于语义的智能感知引擎慢,但不需要编译数据库(compile_commands.json)。

在 VSCode 中常见的智能感知引擎:

  • "Tag Parser":使用标签文件,适用于没有编译数据库或编译数据库不完整时的情况。
  • "Default":VSCode 默认的智能感知引擎,通常是基于语义的,提供更准确的代码自动完成和导航功能。
  • "Disabled":完全禁用智能感知功能。

        通常,为了获得最佳的智能感知体验,建议使用默认的智能感知引擎,并确保项目中存在正确的编译数据库。编译数据库可以通过使用 CMake 或其他构建系统生成,VSCode 可以使用它来提供更准确的代码分析和智能感知。

参考链接

解决vscode下C/C++indelisense插件函数跳转卡顿不流畅的问题_vscode代码跳转不稳定-CSDN博客

vscode的C/C++明明定义了,还是会标红,一键解决_vscode头文件标红-CSDN博客 

VSCode中出现未定义标识符,可以找到引用但是依旧标红_vscode style里面预期有标识符-CSDN博客 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值