ubuntu18.04 安装sophus(模板类)

一、问题描述

  自己在跟着《视觉slam14讲》第二版 第四讲学习使用 sophus 库时,make时总是报 fatal error 编译不通过,故记录此安装历程。
在这里插入图片描述

二、安装步骤

1. 安装 eigen 库

  sophus的使用必须依赖eigen库,因此先下载eigen,但是如果你有3.3以下的版本的eigen,那么请先卸载。

1.1 判断有老版本
sudo updatedb  
locate eigen3  
1.2 查看已安装 eigen 版本
 pkg-config --modversion eigen3
1.3 eigen 旧版本卸载
 sudo rm -rf /usr/include/eigen3 /usr/lib/cmake/eigen3 /usr/share/doc/libeigen3-dev /usr/share/pkgconfig/eigen3.pc /var/lib/dpkg/info/libeigen3-dev.list /var/lib/dpkg/info/libeigen3-dev.md5sums  

1.4 eigen 3.3.7版本安装

(1)在 官网 下载安装包:eigen-3.3.7.tar.bz2 ,然后提取到此处
(2)进入文件夹eigen-3.3.7,右键在终端打开。
(3)进行安装

mkdir build
cd build
cmake ..
sudo make install

PS: sudo apt-get install libeigen3-dev该命令可能会安装下载 3.2版本的eigen,从而无法与模板类的sophus相匹配,故不建议此方法安装。

2. 安装 fmt 库

  目前,sophus 需要依赖fmt库,因此优先安装fmt:

git clone  https://github.com/fmtlib/fmt.git
cd fmt
mkdir build
cd build
cmake ..
make
sudo make install

PS: 下载链接

3. 安装 Sophus 库

3.1 安装
git clone https://github.com/strasdat/Sophus.git
cd Sophus/
mkdir build
cd build
cmake ..
make
sudo make install

PS:

  • 网上不少教程多有回滚,即 git checkout a621ff,这样会装成老版本的非模板 sophus,而新版本 sophus 采用的是模板类;
  • sudo make install一定要有。
3.2 测试

  重新make,成功编译:
在这里插入图片描述
  下图为成功运行的截图。
在这里插入图片描述

4. slam_14讲 error

4.1 error 描述

  在 make 《视觉slam14讲》第二版 第四讲 ch4/example/trajectoryError评估估计误差时出现 error : "undefined reference to `fmt::v8::detail::assert_fail(char const*, int, char const*)’ ",编译不通过。
在这里插入图片描述

4.2 问题解决

  修改 CMakeLists.txt 、trajectoryError.cpp 这两个文件,具体修改如下:

  • ch4/example/CMakeLists.txt文本中添加如下:
find_package(Sophus REQUIRED)
target_link_libraries(trajectoryError Sophus::Sophus)
  • ch4/example/trajectoryError.cpp文本中修改如下:
// string groundtruth_file = "./groundtruth.txt";
// string estimated_file = "./estimated.txt";
string groundtruth_file = "../groundtruth.txt";
string estimated_file = "../estimated.txt";

在这里插入图片描述

4.3 测试结果

  重新编译 make ,运行成功:
在这里插入图片描述在这里插入图片描述

  • 5
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值