【学习记录】CLINS配置与运行

本文记录了在编译CLINS项目时遇到的两个主要问题:Sophus中的static_assertfailure和fmt库的版本冲突,以及yaml-cpp的BadConversion问题。作者提供了详细的解决步骤,包括fmt库的版本迁移和LZ4头文件的重命名。还提到了在anaconda环境中处理链接错误的方法。
摘要由CSDN通过智能技术生成

今天下载了CLINS,记录下编译过程中遇到的一些问题与解决方法。

CLINS源码github:
https://github.com/APRIL-ZJU/clins

根据CLINS源码,编译CLINS需要:

  • Sophus
  • Ceres
  • yaml-cpp

1、Sophus安装

Sohpus用的是这个版本:https://github.com/NikolausDemmel/Sophus/tree/eaf1e404992675a42892fa648d69d5bd933ff219
下载后不要单独编译,只需要修改CLINS的CMakeLists.txt,include一下sophus的路径即可。

遇到问题1:static_assert failure问题。

/opt/homebrew/include/fmt/core.h:1732:3: error: static_assert failed due to requirement ‘formattable’ “Cannot format an argument. To make type T formattable provide a formatter specialization: https://fmt.dev/latest/api.html#udt” static_assert(

从github上找到了一些说法,例如:https://github.com/strasdat/Sophus/issues/366
解决办法就是,卸载当前的 fmt

sudo apt remove libfmt-dev

之后下载 8.1.1版本的fmt:https://github.com/fmtlib/fmt/releases/tag/8.1.1

遇到问题2:LZ4的冲突定义问题。

conflicting declaration ‘typedef struct LZ4_stream_t LZ4_stream_t

具体报错,就是/usr/include/flann/ext/lz4和pcl、ros等里面的一些头文件重复定义了这个类型。
解决方法:最简单的,就是重命名flann的文件:

sudo mv /usr/include/flann/ext/lz4.h /usr/include/flann/ext/lz4.h.bak
sudo mv /usr/include/flann/ext/lz4hc.h /usr/include/flann/ext/lz4.h.bak
sudo ln -s /usr/include/lz4.h /usr/include/flann/ext/lz4.h
sudo ln -s /usr/include/lz4hc.h /usr/include/flann/ext/lz4hc.h

2、Ceres安装

Ceres之前装过了,也没有遇到任何问题。

3、yaml-cpp安装

yaml-cpp安装时,遇到的问题:YAML::BadConversion。

error "YAML::BadConversion::BadConversion(YAML::Mark const&)

解决方法:安装yaml-cpp 0.5.1版本:

  • 首先卸载 /usr/include/yaml-cpp, /usr/local/lib 等路径下所有yaml-cpp.a, yaml-cpp.so所有文件;
  • 从yaml-cpp的repo的tag里面选择 0.5.1版本(https://github.com/jbeder/yaml-cpp/tree/release-0.5.1)
  • 编译、安装,即可。

4、其他问题

anaconda中
用vscode运行时,调用了anaconda中py37的lib中的:libstdc++.so.6,此时报错:

libstdc++.so.6: version `GLIBCXX_3.4.22’ not found

这个问题折腾了半天,比如vscode里面的一些设置等等,都不好用。
最终解决,还是到anaconda这个路径,把libstdc++.so.6改了个名字。md,能用就行。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值