学习笔记21--解决cartographer安装后(环境是ros-kinetic ,gazebo7),工作空间编译时提示protoc版本冲突错误.

环境:ubuntu16.04 ros-kinetic gazebo7.16
问题描述:安装了ros-kinetic,gazebo7,后面安装cartographer,再次编译工作空间时候,提示类似错误:

/usr/include/gazebo7/gazebo/msgs/wrench_stamped.pb.h:17:2: error: #error This file was generated by an older version of protoc which is/usr/include/gazebo7/gazebo/msgs/wrench_stamped.pb.h:18:2: error: #error incompatible with your Protocol Buffer headers. Please/usr/include/gazebo7/gazebo/msgs/wrench_stamped.pb.h:19:2: error: #error regenerate this file with a newer version of protoc.

问题的原因:在安装cartographer时候,安装了新版本protoc,而gazebo7使用的protoc是老版本.

解决方式:卸载proto新版本,重装其对应gazebo的老版本.

步骤:
1)cd /usr/local/include/google //进入proto所在文件夹
2)sudo rm -rf protobuf //卸载该文件
3)下载安装包protobuf-2.6.1.tar.gz
下载地址:https://github.com/protocolbuffers/protobuf/releases/tag/v2.6.1
4)解压该压缩包并 cd 进去该文件夹
5)依次执行下面指令

$ ./autogen.sh

$ ./configure

$ make

$ make check

$ sudo make install

$ sudo ldconfig

6)现在重新编译工作空间时候,上面的错误不再提示了.

至于为什么删除新的protoc,而对于cartographer包运行没问题呢?个人认为,我们安装cartographer包只需编译一次就足够了,除非重装.那么,我们把那个protoc新版本换回老版本也是也是没有问题的.

好了,可以愉快使用cartographer包在gazebo7上面跑仿真建图了.

在这里记录,方便自己以后碰到也可以很快解决.毕竟好记性不如烂笔头.(20200615记)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值