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的时候报的错,到这里正常是不会再报错了,若有其他错误请百度