任乾从零开始后做自动驾驶定位系列代码报错

IDE:VSCode

BUG:fatal error: lidar_localization/saveMap.h: 没有那个文件或目录

解决方法:

saveMap.h是ros编译saveMap.srv自动生成的,进行catkin_make编译后在工作空间目录下的/devel/include里有/lidar_localization文件夹,里面就包含了上面的.h文件

我们只需要将这个绝对路径添加到/.vscode的c_cpp_properties.json文件的头文件路径内即可

注意是src目录下的.vscode文件夹,添加到其他子目录下的.vscode文件夹依然找不到头文件

顺便修改其他文件下的绝对路径,避免其他错误

同理可解决:fatal error: lidar_localization/optimizeMap.h: 没有那个文件或目录

BUG2:terminate called after throwing an instance of 'YAML::BadFile'
  what():  bad file

问题探索:

查阅相关文章后得出该问题的主要原因只有一个:yaml文件的路径不对,导致找不到对应的yaml文件

接下来就是寻找工程中的哪个文件编写了yaml文件的路径

直接在搜索框搜索yaml,第一个即yaml文件的编写位置,在front_end.cpp文件的第26行

这里编写的是相对路径,先得到WORK_SPACE_PATH,后面才是yaml文件的具体位置,因此尝试打印一下WORK_SPACE_PATH

在给变量赋值前对WORK_SPACE_PATH进行打印

LOG(INFO) << WORK_SPACE_PATH << std::endl;

打印结果为

即找不到WORK_SPACE_PATH,这便是问题根源所在

因此跳到WORK_SPACE_PATH定义的位置,将其修改为绝对路径

//const std::string WORK_SPACE_PATH = "@WORK_SPACE_PATH@";
const std::string WORK_SPACE_PATH = "/home/hzc/my_ws/src/localization_in_auto_driving-5.0/lidar_localization";

编译后运行成功

解决办法:

将WORK_SPACE_PATH的内容修改为绝对路径,详细到/lidar_localization文件夹

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值