slam第四讲Sophus库编译问题

1.最开始make时报错,显示Eigen版本过低,最低需要3.3.

解决办法:官网下载最新版本Eigen到Slambook2文件夹下安装,编译。

2.

显示缺少/usr/local/include/sophus/common.hpp:42:10: fatal error: fmt/core.h: 没有那个文件或目录
   42 | #include <fmt/core.h>

问题原因:高翔讲课编书时是几年前,现在的Sophus库需要依赖ftm库,这说明不能尽信书(尽信书则不如无书),软件/库这些东西一直在发展。还是需要搞懂地层逻辑原理。

解决办法:缺啥补啥,先安装ftm库。

git clone  https://github.com/fmtlib/fmt.git
cd fmt
mkdir build
cd build
cmake ..
make
sudo make install
再重新在Sophus文件夹下安装编译Sophus.

3.make[2]: *** [CMakeFiles/useSophus.dir/build.make:84:useSophus] 错误 1
make[1]: *** [CMakeFiles/Makefile2:96:CMakeFiles/useSophus.dir/all] 错误 2
make: *** [Makefile:84:all] 错误 2

又报错。 重新安装了一遍Sophus还是一样的错。

然后参考了博客Sophus连接发生错误**_蓝天巨人的博客-CSDN博客

他主要是改了CmakeList.txt文件,然后我照着改了,还是有问题。于是自己不知道怎么改了CmakeList.txt文件改成

cmake_minimum_required(VERSION 2.8)
project(use_sophus)
set(CMAKE_BUILD_TYPE "Debug" )
find_package(Sophus REQUIRED)

include_directories( ${Sophus_INCLUDE_DIRS} )
include_directories("/usr/include/eigen3")
add_executable(usesophus useSophus.cpp)
target_link_libraries(usesophus Sophus::Sophus)

再次make ,就没报错了。正常编译运行终于出结果了。

对比了下原CMakeList.txt文件是把最后一句add_subdirectory(example)改成了target_link_libraries(usesophus Sophus::Sophus)

这个原因大概是作者用example这个文件来统领整个ch4的项目,而我是在ch4这个文件夹下编译运行的。可能是需要在example这个文件夹下编译运行。(好像也不对,猜测的)

二.在运行example时又报错了:[CMakeFiles/trajectoryError.dir/build.make:103:trajectoryError] 错误。

网上找到一篇博客,把CmakeList.txt里面的内容替换调之后重新make,就可以了,参考博客地址为:学习视觉SLAM14讲ch4时,运行example工程,及所遇到的问题汇总(Ubuntu20.04)_MFL_xiaotaiye的博客-CSDN博客

  • 9
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值