Sophus库安装踩坑(SLAM十四讲)

学习slam十四讲(第二版),自行git安装sophus库,但是需要做准备工作
注意,如果看网上的其他教程可能会出错,因为大部分教程是根据第一版的书,使用的是非模板类,但是这里使用的是模板类的sophus

0.准备工作

因为sophus的使用必须依赖eigen库,因此先下载eigen,但是如果你有3.3以下的版本的eigen,那么请先卸载:
0.0 如果你有以前的eigen版本,则先卸载
(1)如何判断有老版本

sudo updatedb  
locate eigen3  

(2)进行卸载

sudo rm -rf /usr/include/eigen3 /usr/lib/cmake/eigen3 /usr/share/doc/libeigen3-dev /usr/share/pkgconfig/eigen3.pc /var/lib/dpkg/info/libeigen3-dev.list /var/lib/dpkg/info/libeigen3-dev.md5sums  

0.1 安装eigen3.3以上版本(这里我选用最新的3.3.7,注意3.2系列的不可以!!!)
注意,千万不要使用 sudo apt-get install libeigen3-dev 因为这个命令下载的是3.2版本的eigen,从而无法与模板类的sophus相匹配

正确方法:
(1)在官网(http://eigen.tuxfamily.org/index.php?title=Main_Page)下载安装包:eigen-3.3.7.tar.bz2 ,然后提取到此处
(2)进入文件夹eigen-3.3.7,右键在终端打开。
(3)进行安装

mkdir build

cd build

cmake ..

sudo make install

(4)检查sophus是否安装成功:(忽略其他包。。。)
在这里插入图片描述
0.2 将Kdevelop调整为支持C++ 11编译。(不用kdevelop的可以先忽略,看看自己的编译器能不能编译C++11)请查看:
https://blog.csdn.net/weixin_44684139/article/details/104803731

1.Sophus安装

1.1 自己建立一个文件夹,在终端打开,然后

git clone https://github.com/strasdat/Sophus.git
cd Sophus/

mkdir build
cd build
cmake ..
make
sudo make install

在这里强调!不要回滚git checkout a621ff,否则会装成老版本的非模板sophus(网上大多教程都有回滚)
千万不要回滚!!!!!
且强调
sudo make install一定要有

1.2 测试

先看看这个目录下有没有sophus
在这里插入图片描述

然后导入头文件看看

(1)CMakeList.txt ( 同时加入eigen和sophus的依赖 )

cmake_minimum_required(VERSION 2.8)
project(useSophus)

# 为使用 sophus,需要使用find_package命令找到它
find_package(Sophus REQUIRED)
include_directories(${Sophus_INCLUDE_DIRS})

# Eigen
include_directories("/usr/local/include/eigen3")
add_executable(useSophus useSophus.cpp)

注意,include_directories("/usr/local/include/eigen3") 一定是这个路径,而不是直接usr/include/eigen3,因为你自己编译安装的是在local下面

(2)测试

#include 
#include 
#include 
#include 
#include "sophus/se3.hpp"

using namespace std;
using namespace Eigen;

/// 只是导入头文件看看能不能成

int main()
{


}

你可能感兴趣的:(slam学习,sophus,安装,教程,eigen)