Ubuntu20.04下多版本Eigen、Ceres灵活使用

提示:该博客仅仅用于记录本人在安装自用环境下的真实有效配置:

一、问题描述

  1. 本地已安装了最新的Eigen 与Ceres,项目配置需要回退到旧版
  2. 一种方式是采用Docker,另外一种就是本文,安装多个版本在本地并灵活调用,彼此不影响
  3. Ceres 依赖于Eigen编译,假设本机已经安装了Ceres 2.2.0 和 Eigen 3.4.0
  4. 现在想配置使用旧版本 Ceres 1.4.0 和 Eigen 3.3.7

二、源码编译 Eigen 3.3.7

  1. https://github.com/eigenteam/eigen-git-mirror,选择版本3.3.7下载
  2. 解压进入目录
  3. 创建安装目录 /usr/local/eigen-3.3.7/, /usr/local/目录一般用于源码编译到本地的软件
sudo mkdir /usr/local/eigen-3.3.7
  1. cmake 编译安装到指定目录 /usr/local/eigen-3.3.7
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX="/usr/local/eigen-3.3.7"  
make -j4
sudo make install

三、源码编译 Ceres 1.14.0

  1. https://github.com/ceres-solver/ceres-solver, 下载ceres 1.14.0版本
  2. 创建安装目录 /usr/local/Ceres-1.14.0/
sudo mkdir /usr/local/Ceres-1.14.0
  1. 解压进入目录,然后安装到指定目录/usr/local/Ceres-1.14.0,并指定依赖Eigen 3.3.7, 因为此时系统默认是3.4.0,不指定版本会报错
mkdir build && cd build 
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/Ceres-1.14.0 -DEigen3_DIR=/usr/local/eigen-3.3.7/share/eigen3/cmake
make -j4
sudo make install

四、具体使用 Ceres 1.14.0 与 Eigen 3.3.7

在具体项目根目录CMakeLists.txt中修改代码

# 指定Eigen的自定义安装路径
set(Eigen3_DIR /usr/local/eigen-3.3.7/share/eigen3/cmake)
find_package(Eigen3 REQUIRED)
include_directories(${EIGEN3_INCLUDE_DIR})

# 指定Ceres的自定义安装路径
set(Ceres_DIR /usr/local/Ceres-1.14.0/lib/cmake/Ceres)
find_package(Ceres REQUIRED)
include_directories(${CERES_INCLUDE_DIR})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值