在尝试配置ORB-SLAM3被劝退了之后尝试了一下ORB-SLAM2遇到的问题少了很多,只出了个别错误。本文站在前人的博文上进行的实践,记录自己尝试配置的过程。
参考博客
ORB-SLAM2详细安装教程(ubuntu18.04)_ubuntu安装orbslam2_牙牙要健康的博客-优快云博客
1、ubuntu18.04中其他依赖项的版本
由于之前装的ORB-SLAM3的时候换了很多Eigen和OpenCV的版本导致我自己都忘了装的什么版本了,如果各位也遇到同样的问题可参考以下方法
本人的版本:
opencv 3.4.2
Eigen 3.2.1
Pangolin 0.6
(1)查看opencv的版本
pkg-config --modversion opencv
(2)查看Eigen的版本
sudo gedit /usr/include/eigen3/Eigen/src/Core/util/Macros.h
在14、15、16行处显示着eigen的版本
2、/usr/bin/ld:找不到-lEigen3::Eigen
在编译的时候报错
[ 62%] Linking CXX shared library ../lib/libORB_SLAM2.so
/usr/bin/ld: 找不到 -lEigen3::Eigen
collect2: error: ld returned 1 exit status
CMakeFiles/ORB_SLAM2.dir/build.make:624: recipe for target '../lib/libORB_SLAM2.so' failed
make[2]: *** [../lib/libORB_SLAM2.so] Error 1
CMakeFiles/Makefile2:252: recipe for target 'CMakeFiles/ORB_SLAM2.dir/all' failed
make[1]: *** [CMakeFiles/ORB_SLAM2.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
解决方案
ORB_SLAM2编译及试运行(含ROS)_cmakefiles/makefile2:252: recipe for target 'cmake_Mr.Hazyzhao的博客-优快云博客
根据git上的回答
把ORB-SLAM2文件夹中的Cmakelists.txt中的REQUIRED改为REQUIRED NO_MODULE, NO_MODULE可以用来明确地跳过模块模式。它也隐含指定了不使用在精简格式中使用的那些选项。
改完之后重新编译,删除ORB-SLAM2中的build文件夹以及Thirdparty/DBoW2/build和Thirdparty/g2o/build,然后重新编译!
然后跟着流程下来就行了
运行结果