cartographer源码安装过程中ceres_solver编译出错
cartographer的源码安装参考
谷歌Cartographer源码安装及测试
cartographer超详尽安装教程
前期安装依赖关系不再赘述,只讨论出现的问题。
运行:
catkin_make_isolated --install --use-ninja
在编译cartographer过程中出现如下错误:
error: variable or field ‘it’ declared void
for (typename C::const_iterator it = container.begin();
^
ninja: build stopped: subcommand failed.
<== Failed to process package 'ceres-solver':
Command '['/home/fzc/catkin_google_ws/install_isolated/env.sh', 'ninja', '-j4', '-l4']' returned non-zero exit status 1
原因是:在电脑上已经安装了ceres_solver,重复编译造成cartographer无法确认ceres_solver的路径及版本。
是否已经成功安装ceres_solver,可以用如下方法查看:
Ceres库的头文件安装在"/usr/local/include/ceres/“目录下,库文件安装在”/usr/local/lib/"目录下。
安装完成后查看是否有对应的文件,如果有则说明安装成功。
如果已经安装ceres_solver,那么在工程的src下删除ceres_solver文件夹,再进行编译即可。亲测这种方法可以编译成功,并能够仿真测试。