eigen冲突 sophus 安装_SLAM-Sophus模板库安装总结

本文介绍了在安装《视觉SLAM十四讲》第二版中遇到的Sophus模板库和非模板库安装问题。通过手动安装Eigen 3.3.7和切换Sophus的版本,解决了与eigen 3.2.9的版本冲突。安装过程中,模板库和非模板库的头文件和库文件可能会产生冲突,需要调整安装顺序和CMakeLists.txt文件。同时,文章提到了模板类与非模板类在使用和配置上的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【问题】由于自己买的书《视觉SLAM十四讲:从理论到实践》,也就是《视觉SLAM十四讲》的第二版,书中Sophus库用的是模板版本,而之前我下载书籍代码是第一版书籍的代码仓库,没办法,只能重新安装Sophus库(其实无论是模板库还是非模板库都是一样,只不过在程序写法上有些变化)。第二版书籍代码仓库中也有第三方的Sophus代码包,但是在编译安装的时候,总是报错。具体每一步报的错误,我忘记截屏了,只记得过程。

【结果】sophus库安装了两个版本:模板库和非模板库。eigen库安装了两个版本,一个是3.2.9的,一个是3.3.7的。

【模板类和非模板类的区别】

至于在使用上的差异,我就不多说了。只讨论下在安装过程中和使用配置上的差异。模板类的Sophus中可以使用不同精度的李群/李代数,而非模板类的Sophus只提供双精度的李群/李代数。

git clone https://github.com/strasdat/Sophus.git // 首先下载代码仓库

cd Sophus

git checkout a621ff // 切换到对应的版本中去

// a621ff是非模板类的版本

// 00f3fd9是2018年的一个模板类的版本 //这是我安装的版本

// git checkout master // 可以切换会最新的版本

// git log // 可以查看提交版本记录

在非模板类中,库是利用.c加.h的方式实现的;而在模板类库中是集合在一个.hpp中实现的

1. 手动安装Eigen-3.3.7库

# 在书籍的第一版中,eigen的安装十分简单:

$ sudo apt-get install libeigen3-dev

# 但是默认安装eigen版本是3.2.9版本的,这不满足模板类的Sophus的安装要求

进入Eigen的下载网址,右侧正中有一个下载链接(Get it),这里选择tar.gz.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值