rgbdslam_v2编译过程当中引发的needed by错误

Ubuntu16.04,ROS kinecticgit

 

报错信息为“github

make[2]: *** No rule to make target '/home/william/slam/g2o/lib/libg2o_csparse_extension.so', needed by '/home/william/catkin_ws/devel/lib/rgbdslam/rgbdslam'. Stop.
CMakeFiles/Makefile2:5881: recipe for target 'rgbdslam_v2/CMakeFiles/rgbdslam.dir/all' failed
make[1]: *** [rgbdslam_v2/CMakeFiles/rgbdslam.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j4 -l4" failed架构

ui

报错缘由以下:spa

1. 先是按照https://github.com/felixendres/rgbdslam_v2上的README.md来安装.net

2. 出现G2O引发的bug,在编译安装g2o时经过,却在编译rgbdslam中报错,依照https://hubpages.com/technology/Instructions-for-compiling-rgbdslam-v2-on-a-fresh-Ubuntu-1604-install-ros-kinetic-in-virtualbox中的6,解决了blog

缺乏依赖,执行sudo apt-get install libsuitesparse-dev(装依赖后再装G2O会好一点),在报错以后安装依赖,若是不行,就装完依赖后再安装g2oip

我以为本次主要讲的大bug就是从这里引发的ci

3. 遇到https://blog.csdn.net/zhuoyueljl/article/details/78536996?reload中,“required process[rgbdslam-2] has died”......Iinitiating down”问题,解决后,编译出现needed by错误get

 

解决方法为:

工做空间(也有多是编译G2O时才会出现)的cmake_modules中(位于SRC)有个FindG2O.cmake的文件,将其移除掉就能够了,由于用3的方法,make install了G2O,所以不须要cmake_modules来找G2O的包

 

PS:

学到的几个小技巧

1 使用grep搜索文件中的文本信息,语法是

grep -rw PATTERN [file]

2. 在CMakeLists.txt中,设置找包的路径:

set(G2O ‘包的绝对路径’)

 

反思总结:

1. 一样是对编译错误进行查找,在报错信息提示找不到这个 ibg2o_csparse_extension.so 文件时,我倾向于使用grep去搜索,rgbdsla包中哪行代码对这个文件进行查找,可是结果明显是找不到的。这是对整个编译架构的不理解

2. 不过,在没有其余经验的前提下,作点什么老是比什么都不作来得好。

相关文章
相关标签/搜索