Eigen3多版本切换

在编译SLAM的过程中,不同库需要的Eigen版本不一致,因此需要进行Eigen的版本切换。由于Eigen是一个只有头文件的库,因此切换起来还算方便。

1.利用apt-get进行安装

$ sudo apt-get install libeigen3-dev

通过上面的方式进行安装的Eigen,一般是存放在/usr/include,有一个eigen3文件夹,应该是长下图这样:
在这里插入图片描述

2.利用源码进行安装

从github上把对应版本的Eigen3拉到本地(我是3.2.10),进入文件夹,运行下面的指令:

$ cd Your_eigen_path
$ mkdir build && cd build
$ mkdir ~/eigen_output
$ cmake -DCMAKE_INSTALL_PREFIX=~/eigen_output ..
$ make && make install

这样会在~/eigen_output文件下生成eigen3库,进去后应该是长这样的:
在这里插入图片描述
进入include文件夹,执行以下命令:

$ sudo mv eigen3 /usr/include/eigen3210

后面的eigen3210这个文件名按照自己喜好改就好了,这样/usr/include目录下就存在两个版本的eigen,一个是以eigen3命名的通过apt-get的方式安装的最新版本,另外一个是以eigen3210命名通过编译源码的形式安装的自选指定版本。

3.版本切换

系统是通过eigen3.pc这个文件搜索eigen库的,两种方式安装都会生成一个eigen3.pc文件,通过apt-get安装的存放在/usr/share/pkgconfig文件夹下,通过源码安装的就存放在安装目录的share/pkgconfig文件夹下,两个文件的对比如下:

在这里插入图片描述
可以看到,除了第一行的安装位置以及第七行版本的差别(左边第8行是我加的注释),两个文件没有其他差别,因此我们保留其中的一个就可以了,这里直接保存通过apt-get安装的存放在/usr/share/pkgconfig.pc文件,在上图中就是左边那个,这个文件是不可修改的,因此需要修改一下权限:

$ sudo chmod 777 /usr/share/pkgconfig/eigen.pc

接下来对该文件进行修改,由于我们的eigen3放在了/usr/include下,因此第一行不用改,保持prefix=/usr即可,需要修改Version,用哪个版本就改成哪个版本号,如上图左边所示,另一个版本用//注释掉即可,修改完保存退出。

接下来回到/usr/include下,执行以下命令:

$ sudo mv eigen3 eigen337
$ sudo mv eigen3210 eigen3

这样就通过重命名的方式改变系统查找文件时的指向,进而完成了版本切换的工作。

  • 8
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值