我一开始的电脑配置过ROS和Kinect2驱动,之后又进行过各种其他配置,不知道更改了啥环境,导致最后配置Octomap环境时,经常报错,怎么整都没用,无奈之下,我只能选择重装系统,从零开始配置。
重装完系统之后,先安装搜狗拼音,方便查找资料,之后安装git,因为需要从github下载源码。
#sudo apt-get install git
之后安装C/C++环境
#sudo apt-get install build-essential
在安装Cmake(这一步非必须,因为后面会发现Cmake版本太低,需要升级,但是作为系统从零开始配置的基础,Cmake还是需要先安装以下的)
#sudo apt-get install cmake
之后,就可以开始安装Octomap了,在这里,我参考了高翔博士的博客https://www.cnblogs.com/gaoxiang12/p/5041142.html,但是我在安装过程中,依然出现了不少错误,这也是我自己写这篇博客的真正意义所在。
1、首先,下载Octomap源码(可以直接下载在根目录下)
#git clone https://github.com/OctoMap/octomap
2、开始编译(这里就开始出现错误了)
#cd octomap
#mkdir build
#cd build
#cmake ..
(这里忘记截图了,但是大意就是couldn't found doxygen.(missing: DOXYGEN_EXECUTABLE))
所以下一步就是安装doxygen库
2.1 通过cd命令回到根目录,下载doxygen源码
# cd
# git clone https:github.com/doxygen/doxygen.git
2.2 开始编译
# cd doxygen
# mkdir build
# cd build
# cmake -G "Unix Makefiles" ..
这里就是我们之前提到过的不急着装cmake的原因,在这一步,要求cmake版本不低于cmake3.1.2,但是直接通过sudo apt-get install cmake安装的cmake版本仅仅是2.8(查看cmake版本命令是:cmake --version)
2.3 升级cmake版本
# sudo apt-get install software-properties-common
# sudo add-apt-repository ppa:george-edison55/cmake-3.x
# sudo apt-get update
(1)上面几个命令是将库里面的cmake版本进行升级,所以如果并没有安装过cmake,直接运行sudo apt-get install cmake,就可以将库里面升级过后的cmake进行安装
(2)如果已经安装过cmake,则可以直接升级sudo apt-get upgrade
(注:如果升级之后,进行编译,报错cmake没有正确安装,重新运行sudo apt-get install cmake,再进行编译即可)
升级之后的版本是3.2.2
这时候再运行
# cmake -G "Unix Makefiles" ..
不会再 报错cmake版本不够了,会出现新的错误,主要有两个
Could NOT find FLEX (missing: FLEX_EXECUTABLE)
Could NOT find BISON (missing: BISON_EXECUTABLE)
原谅我忘记截图了(其实我之前截图了,但是重装系统全部清空了。。。),但是这两个问题解决起来很简单,缺啥补啥,第一个问题是缺少FLEX
# sudo apt-get install flex
第二个问题是缺少BISON
# sudo apt-get install bison
这样就解决了,之后再运行
# cmake -G "Unix Makefiles" ..
就不会出问题啦!
2.4安装doxygen
# make
# sudo make install
成功安装doxygen之后,就可以继续octomap的安装了。
3 回到octomap的build目录,重新编译安装
# cd octomap
# cd build
# cmake ..
# make
根据我的经验,这回就不会再出现问题了
安装成功!
最后,根据高翔博士博客里说,事实上,octomap的代码主要含两个模块:本身的octomap和可视化工具octovis。octovis依赖于qt4和qglviewer,所以 如果你没有装这两个依赖,请安装它们:sudo apt-get install libqt4-dev qt4-qmake libqglviewer-dev
(2019/5/21进行补充)
上述经验是我从重装系统之后,什么都不安装,从零开始安装octomap,但是当我参照我自己的博客Ubuntu14.04安装ROS,kinect2驱动,RGB-D SLAM安装东西之后,在进行octomap的安装,会有两点不同。
1、当用git clone下载完octomap源码之后,进行编cmake时,不再会报错。所以不需要再去特意安装doxygen
2、但是在进行make时,却会报错,错误如下:
上网查阅各种资料后,在这篇博客得到了解决:octomap库的一点总结
具体解决措施如下:
删除之前下载的octomap文件夹,用git clone重新下载。
# git clone https://github.com/OctoMap/octomap
# cd octomap
# git checkout v1.6.9 //校验为自己的版本
# mkdir build
# cd build
# cmake ..
# make
# sudo make instal
基本步骤不变,唯一的区别就是在cmake编译前增加一步校验版本的操作git checkout v1.6.9。
在这边要强调一句:为什么要重新下载呢?别问,问就是我试过,错误依旧,但是重新下载完,再按照步骤来就没问题了!