(未更完)《SLAM十四讲》ch6中Ceres和Eigen遇到的坑

1 遇到的问题

在跑ch6的代码时遇到了两个错误

(1) 在CMakeLists中找不到Ceres库,find_package()爆红(下图是解决后的)
在这里插入图片描述

(2) 安装Ceres,在make的时候报错

2 原因

(1) 我以为我以前装过Ceres了,结果没有装,装一下就行。
(2) 接上一个问题,安装Ceres之前需要先看一下Eigen版本,不匹配的版本会出问题,

3 解决方法

总结来说,就是安装Ceres之前需要安装匹配的Eigen版本。这里Ubuntu使用的是18.04,查资料发现Ceres使用1.14.0,Eigen使用3.2.9,由于我之前Eigen安装了高版本,所以需要卸载回退低版本。

3.1 Eigen

(1) 卸载Eigen(若安装过)
安装了旧版本的可以通过locate命令来查找安装路径

locate Eigen

一般都是安装在下面目录

/usr/locate
/usr/local/include/

找到后把文件夹删了,但是我不确定这样删的干不干净,这次我是成功了,不敢说一定成功
(2) 下载Eigen 3.2.9(若未安装过)
Eigen官网
去官网找到3.2.9版本,下载zip或者tar的都行,我这样用的zip
(3) 解压Eigen到指定目录

unzip eigen-3.2.9.zip /usr/local/include/

(4) 重命名

sudo mv /usr/local/include/eigen-3.2.9 /usr/local/include/eigen3

(5) 复制

sudo cp -r /usr/local/include/eigen3/Eigen /usr/local/include 
sudo cp -r /usr/local/include/eigen3/Eigen /usr/include 
sudo cp -r /usr/local/include/eigen3 /usr/include

3.2 Ceres

(1) 卸载原有的Ceres(若安装过)

sudo rm -r /usr/local/lib/cmake/Ceres
sudo rm -rf /usr/local/include/ceres /usr/local/lib/libceres.a

(2) 下载Ceres 1.14.0 (若未安装过)
Ceres-Github
同样zip和tar哪个都行,这里用的zip
(3) 解压

unzip ceres-solver-1.14.0.zip

(4) 编译

cd 
mkdir build
cd build
cmake ..
make -j2
make test
make install

注意
(1) make的时候参数-j后的数字根据自己电脑的线程数来选择,-j2表示两个线程同时进行,会快一些
可以通过htop命令查看线程
在这里插入图片描述
(2) 遇到的问题2就是在make的时候报的错,到这里正常是不会再报错了,若有其他错误请百度

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值