Sophus安装时Eigen库更新版本的问题

最近在学习SLAM,跟随的是高翔博士的《视觉SLAM十四讲》,其中遇到一个问题,就是在安装Sophus的时候,要求Eigen库的版本必须在3.3以上,而我查看了自己的Eigen库,3.2.92!你说气不气人,没办法,只能更新。

以上为问题背景,有些人可能觉得这问题,直接sudo apt upgrade一下不就好了,我也想他这么简单,因为我用的是Ubuntu 16.04,可能它还没有在apt中发布最新版本,我直接用sudo apt install libeigen3-dev安装,其最新版本就是3.2.92,所以我只能用源码安装,过程虽不算艰辛,但也值得记录。

注意,我所讲的方法,只适用于用cmake的同志们,虽然我觉得用eigen库,应该都要用cmake


一、Ubuntu下查看自己的Eigen版本

这里我提供多个方法。

  1. 查找已安装Eigen的目录,/usr/include/eigen3/Eigen/src/Core/util/Macros.h,找到上述文件,一般情况下安装是在/usr/include中的
    在这里插入图片描述
    如图,我的Eigen版本是更新到3.3.7了,是目前最新版本。
  2. 如果你的电脑安装了cmake,也可以通过CeresConfig.cmake文件或Eigen3Config.cmake进行查看

/usr/lib/cmake/eigen3/Eigen3Config.cmake在这里插入图片描述
/usr/local/lib/cmake/Ceres/CeresConfig.cmake
在这里插入图片描述

二、通过源码安装更新Eigen库

  1. 首先通过官网下载源码:http://eigen.tuxfamily.org/index.php?title=Main_Page#Compiler_support直接下载tar.gz包就可以,然后用
sudo tar -xzvf eigen-eigen-5a0156e40feb.tar.gz -C /usr/include

解压到/usr/include

  1. 然后将原来的eigen3文件夹改名为eigen_[版本号],然后将这个新的eigen文件夹命名为eigen3,命令如下:
sudo mv eigen3 eigen3.2.92
sudo mv eigen-eigen-5a0156e40feb eigen3
  1. 然后修改相应的cmake文件,要修改的主要有两个文件,也就是上述提到的寻找版本时的两个文件,以防万一,做修改之前最好备份。

进入/usr/lib/cmake/eigen3/

cd /usr/lib/cmake/eigen3/
sudo vim Eigen3Config.cmake

将上述显示版本的地方改为3,3,7

进入/usr/local/lib/cmake/Ceres/

cd /usr/local/lib/cmake/Ceres/
sudo vim CeresConfig.cmake

这是一个检验版本一致性的东西,然后进入之后,找到 set(CERES_EIGEN_VERSION 3.2.92),将这个版本修改为3.3.7

大功告成!然后当你再次用cmake的时候,find_package找到的就是3.3.7这个版本啦!!

友情提醒,当你找不到某个文件的时候,告诉你一个命令,及其有用

sudo find / -name [文件名]

这条命令是在全局搜索你要找的文件。

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值