semantic-icp编译中出现的问题及解决方法

这篇文章记录s-icp编译中遇到的问题,方便下次出问题查找,也感谢网上解答的帮助。

问题一

编译semantic-icp 出现如下问题,查原因可能是sophus的版本问题。旧版本是xx.h,新版本是xx.hpp。所以我即使装了旧版本,也会报错。

错误:

fatal error: sophus/se3.hpp: 没有那个文件或目录

解决方法

下载sophus源码并编译:

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

问题二

继续编译s-icp,又出现了新问题如下:

错误:

fatal error: fmt/core.h: 没有那个文件或目录

问题出在编译test_icp.cc文件的13行时,找不到fmt/core.h这个文件。

解决方法

在test_icp.cc文件的所在目录找到Cmakelists.txt,加入下面截图中的第三行(前两行本来就有,第三行新加):

即:

target_link_libraries([要生成的目标文件的名称] Sophus::Sophus)

后续编译中,在编译其他一些文件时出现同样问题,解决方法相同。(最后/semantic-icp/exec/Cmakelists.txt中的其他文件 基本都加上了上面截图的第三行。

问题三

错误:

error: ‘struct ceres::Solver::Options’ has no member named ‘num_linear_solver_threads’; did you mean ‘linear_solver_type’?

 查阅ceres源码会发现nun_linear_solver_threads变量已经不在Option 结构体里面了。查阅其它资料发现在ceres-1.15版本已经把num_linear_solver_threads丢弃了。

解决方法

直接找到报错文件的这一行注释掉。

 结束

到此,s-icp编译成功。主要问题是时间过久(s-icp是2018年的),一些库的版本问题和函数舍弃导致的编译报错。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值