环境:
VMware workstation
unbantu 18.04
octomap 1.8.1
flc 0.7.0
写在前面:
最近学习机器人的控制,需要安装OMPL库,但是这个库的前提是安装flc这个库。所以在这里给出这个库的安装教程,并记录一些报错的解决。
安装教程:
在安装这个库之前需要安装octomap这个库
octomap库链接(1.8.1版本)安装1.9以上的版本会报题目所述错误,后面给解决方案。
下载这个安装包之后,随便在电脑建一个目录,然后解压,之后建立文件夹build,在build里面进行cmake,命令如下:
cd octomap
mkdir build
cd build
cmake ..
make
sudo make install
结果如下:
安装fcl
fcl的安装步骤与上述一致,可以先使用
git clone https://github.com/flexible-collision-library/fcl
将安装包git到本地。如果无法git,可以去GitHub下载安装包,然后解压。
(ps:因为VMware使用的主机的网络,国内网访问git会很慢,可能会报错,有兴趣的同学可以尝试使用虚拟机的代理)
在git完之后使用和fcl一样的安装步骤:
cd fcl
mkdir build
cd build
cmake ..
make
sudo make install
这样就成功安装好啦!!!
错误及解决方案
没有安装octomap而直接安装fcl.
当我直接按照网上的教程安装fcl的时候发现,在编译的时候有如下提醒:
Package octomap was not found in the pkg-config search path.
Perhaps you should add the directory containing `octomap.pc'
to the PKG_CONFIG_PATH environment variable
Package 'octomap', required by 'world', not found
虽然cmake没有直接报错,但是胆小如鼠的我也不敢直接硬安装fcl,我怕安装上不能用。
所以就先去安装了octomap。
安装了错误的octomap版本
当我按照网上的教程直接进行安装,虽然成功的安装了版本为1.9.8的octomap,但是又出现了新的错误,在我cmake到51%时,报错:
*** No rule to make target 'octomap-NOTFOUND', needed by 'lib/libfcl.so.0.7.0'. Stop.
CMakeFiles/Makefile2:1310: recipe for target 'src/CMakeFiles/fcl.dir/all' failed
make[1]: *** [src/CMakeFiles/fcl.dir/all] Error 2
Makefile:159: recipe for target 'all' failed
make: *** [all] Error 2
如下:
查阅资料发现:
octomap 似乎1.9以上的和目前版本为0.7.0的fcl都不兼容。因为我没找到fcl的低版本。所以在安装的时候我推荐使用了octomap1.8.1进行安装。
当遇到上述错误后需要把原版本卸载,然后重新下载1.8.1,再重新编译就好啦