ROS-Melodic版编译安装ecto遇到的坑和安装方法+Ubuntu18.04 手动安装教程

简介

最近会使用到ECTO这个库,于是安装一下,安装过程中发现ECTO只支持到Kinetic版本,所以用Melodic的我就得自己来编译,整个编译安装过程如下所示。

安装环境:
ROS Melodic
Ubuntu 18.04

Step 1: 把Ecto git clone 到你ROS的工作空间内

$ cd your_path/src
$ git clone http://github.com/plasmodic/ecto.git

Step 2: 安装相关依赖

$ sudo apt-get install libboost-python-dev libboost-filesystem-dev libboost-system-dev \
        libboost-thread-dev python-setuptools python-gobject python-gtk2 graphviz doxygen \
        python-sphinx

Step3:编译

$ catkin_make
PS:若想安装到/usr/local可使用下面命令安装:
catkin_make -DCMAKE_INSTALL_PREFIX=/usr/local

Step4: 你会遇到的问题

问题1:

": fatal error: boost/tr1/unordered_map.hpp: No such file or directory #include <boost/tr1/unordered_map.hpp>"

解决方案:

1,进入到ecto的目录下使用如下命令找到这两个文件
$ grep -r 'tr1'
./src/lib/util.cpp:#include <boost/tr1/unordered_map.hpp>
./src/lib/plasm/impl.hpp:#include <boost/tr1/unordered_map.hpp>
把tr1删除,同时把代码里的std::tr1::unordered_map字段改成boost::unordered_map即可

问题2:有的人电脑没有安装boost可以手动安装,没有安装会报错,安装方法如下。

方法1:直接安装
$  sudo apt-get install libboost1.54-dev(安装)
$ sudo apt-get autoremove libboost1.54-dev(卸载)
方法2:手动安装最新版本
1,安装依赖库
$ sudo apt-get install mpi-default-dev
$ sudo apt-get install libbz2-dev
$ sudo apt-get install libicu-dev
2下载并解压,下载地址
比如我这里用的是1.70
$ tar -jxvf boost_1_70_0.tar.bz2
安装
$ ./bootstrap.sh
$ sudo ./b2
$ sudo ./b2 install
查看版本可用
dpkg -S /usr/include/boost/version.hpp

问题3:你可能遇到一个奇葩的问题,正则不能使用,这个问题是由于多个boost库引起的,需要删除不需要的库。比如这里如果你安装了1.70那么你应该去删除老版本boost

boost::re_detail_106600::perl_matcher<__gnu_cxx
解决方法:
1,把目前的新版本boost删除也就是刚刚装的1.70
2,把系统一开始使用pat-get install 安装的boost删除,再次编译即可。这里你会遇到很多ros-melodic相关的包都依赖于系统默认的boost,所以删除需谨慎。

[1]https://plasmodic.github.io/ecto/ecto/install/get_ecto.html
[2]http://github.com/plasmodic/ecto.git

  • 16
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值