Ubuntu安装碰撞检测库FCL以及前置依赖libccd, OctoMap
大致安装流程见FCL github地址,但是在安装libccd时存在一些问题。
建议完整浏览后再进行安装
1.编译libccd的报错
首先FCL页面已经说明libccd要直接克隆源码,不要下载压缩包。
其次,在安装过程中在\src
文件夹中直接
$ make
会报错,如图
或者报错==./ccd/vec3.h:35:4: error: #error You must define CCD_SINGLE or CCD_DOUBLE==
根据libccd github-issues中提供的方法,可以通过安装m4来解决
$ sudo apt install -y m4
$ m4 -DUSE_DOUBLE ccd/config.h.m4 >ccd/config.h
然后,正常make && make install
编译libccd是可以完成的,但是在后续编译fcl时可能会报错==`ccd_vec3_origin’ can not be used when making a shared object; recompile with -fPIC==
因此,还需要将/src/Makefile
文件第20行
CFLAGS += -I. -fvisibility=hidden
改为
CFLAGS += -I. -fvisibility=hidden -fPIC
然后,在/src
文件下清除之前对libccd的编译配置
$ make clean
然后
make && make install
编译libccd,完成后去编译fcl即可。