运行ORB_SLAM2中遇到的问题总结

本人电脑Ubuntu18.04 已安装g2o,pangolin,DBoW2等

1 、显示错误:TemplatedVocabulary.h 下没有成员函数loadFromTextFile(const std::string &)

(1)查看安装DBoW2目录下的include/DBoW2/TemplatedVocabulary.h 文件发现没有loadFromTextFile(const std::string &)函数
(2)于是从GitHubThirdparty目录下对应的TemplatedVocabulary.h 上复制了该函数的代码并粘贴到电脑的安装目录下。注意 ①在类里面的public添加函数的声明,②最好再加上using namespace std;
(3)最后就是

mkdir build
cd build
cmake ..
make
sudo make install //更新安装的库

2、 usleep()函数的错误

只需在头文件里面加上
#include 

3、 class redefinition

查看.h文件,发现缺少# pragma once

4、make时生成.so文件成功,最后链接是出错

运行ORB_SLAM2中遇到的问题总结_第1张图片
发现是CMakeLists.txt中对“DBoW2”和“DUtils”没有包含

4.1、DUtils

在ThirdPart/DUtils/生成
因为事先电脑已经安装了DBoW2和g2o,所以ThirdParty中没有DBoW2和g2o,而只包含了DUtils
运行ORB_SLAM2中遇到的问题总结_第2张图片
需要建立CMakeLists.txt并且编译成lib文件夹下的libDUtils.so库。
运行ORB_SLAM2中遇到的问题总结_第3张图片
最后将libDUtils.so包含进ORB_SLAM2、CmakeLists.txt里面
运行ORB_SLAM2中遇到的问题总结_第4张图片

4.2、DBoW2

运行ORB_SLAM2中遇到的问题总结_第5张图片
最后进行整体的cmake和make

你可能感兴趣的:(slam总结,错误解决)