Linux系统下,如何安装多个不同版本的Eigen库且灵活调用呢?

        最近笔者在安装OpenMVS三维重建开源库的依赖项:Eigen线性代数库。笔者在Github上下载了OpenMVS的开源包,在安装过程中,Eigen相关的内容出现报错。浅浅分析了一下,笔者断定是Eigen版本的问题。因为不同版本的Eigen的源代码实现机制差别较大,差一个版本在不同调用代码编译中就会出现不可预料的错误!如先前的ORB-SLAM2的包依赖Eigen3.3.7版本,而Eigen3.3.7版本在OpenMVS编译过程中就会提醒报错!

        笔者既想拥有各个开源工程的运行环境,又不想每次运行时都得删掉Eigen重新选择合适版本安装。为了实现“小孩才做选择,Eigen各个版本我全都要!”的理想,我浅浅研究并总结了两种方法,狠经典!


一、多个Eigen安装并存

        首先笔者已经在Ubuntu18.04中安装了Eigen3.3.7版本的库。安装后,Eigen的源代码文件默认存放在"/usr/local/include/eigen3/"目录下。

        有两组文件值得注意:1. 第一个是存放在"/usr/local/share/pkgconfig"下的eigen3.pc文件,它里面包含了关于eigen的安装路径exec_prefix、名称、描述、版本号等信息。2. 第二个是存放在"/usr/local/include/share/eigen3/cmake/"下的*.cmake文件。它的用途是帮助cmake用findpackage命令找到eigen3依赖包的安装具体位置,方便一站式找包。

        下面给出具体步骤,假设已经安装另一个版本的eigen库eigen3.3.7。

  1. 去eigen官网下载需要的eigen包,假设存放在根目录下"/home/name/eigen3.4.0"。使用下列命令编译安装至"/home/name/eigen3.4.0/eigen_install/中":
        mkdir build
        cd build
        cmake -DCMAKE_INSTALL_PREFIX="/home/name/eigen3.4.0/eigen_install" ..
        make
        make install  

    -DCMAKE_INSTALL_PREFIX用于指定安装路径,系统默认会安装在"/usr/local/include/"下。因为之前已经安装了eigen,第二次安装需要指定到其他路径。指定后,不需要再用sudo提升安装权限。

  2. 编译安装完成后,进入"/usr/name/eigen3.4.0/eigen_install/"中,有两个文件,一个include,另一个是share。include中是安装的源码,share中eigen3包含了eigen3.pc文件以及pkgconfig中包含了*.cmake文件。

  3. 将"/usr/local/include/eigen3"移动至"/usr/local/include/eigen3.3.7"当中:

    sudo mv /usr/local/include/eigen3/ /usr/local/include/eigen3.3.7

    将"/home/name/eigen3.4.0/eigen_install/include/"下的eigen3复制到"/usr/local/include/"下

    sudo cp -r /home/name/eigen3.4.0/eigen_install/include/eigen3 /usr/local/include/

  4. 将 "/usr/name/eigen3.4.0/eigen_install/share"中的.pc文件*.cmake文件分别复制到"/usr/local/share/pkgconfig/"下和"/usr/local/share/eigen3/cmake"下。大功告成!

二、使用docker创建不同的运行环境

        Docker 是一个用于开发,交付和运行应用程序的开放平台。Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助 Docker,您可以与管理应用程序相同的方式来管理基础架构。通过利用 Docker 的方法来快速交付,测试和部署代码,您可以大大减少编写代码和在生产环境中运行代码之间的延迟。

        在Docker为每个工程配置不同的运行环境,是避免冲突的最佳做法。具体的安装和使用方法可以参考博客:Linux下简单使用docker的图文教程(完整版)_YolandeLove的博客-CSDN博客_linux运行docker

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值