make[2]: *** [CMakeFiles/ORB_SLAM2.dir/build.make:102:CMakeFiles/ORB_SLAM2.dir/src/LoopClosing.cc.o]

报错信息:

make[2]: *** [CMakeFiles/ORB_SLAM2.dir/build.make:102:CMakeFiles/ORB_SLAM2.dir/src/LoopClosing.cc.o] 错误 1
make[2]: *** 正在等待未完成的任务....
make[2]: *** [CMakeFiles/ORB_SLAM2.dir/build.make:219:CMakeFiles/ORB_SLAM2.dir/src/Optimizer.cc.o] 错误 1
make[1]: *** [CMakeFiles/Makefile2:250:CMakeFiles/ORB_SLAM2.dir/all] 错误 2
make: *** [Makefile:84:all] 错误 2

向上翻找error:

In file included from /usr/include/c++/9/map:61,
                 from /home/lhq/catkin_ws/src/ORB_SLAM2/Thirdparty/DBoW2/DBoW2/BowVector.h:14,
                 from /home/lhq/catkin_ws/src/ORB_SLAM2/include/Frame.h:27,
                 from /home/lhq/catkin_ws/src/ORB_SLAM2/include/MapPoint.h:25,
                 from /home/lhq/catkin_ws/src/ORB_SLAM2/include/KeyFrame.h:24,
                 from /home/lhq/catkin_ws/src/ORB_SLAM2/include/LoopClosing.h:24,
                 from /home/lhq/catkin_ws/src/ORB_SLAM2/src/LoopClosing.cc:22:
/usr/include/c++/9/bits/stl_map.h: In instantiation of ‘class std::map<ORB_SLAM2::KeyFrame*, g2o::Sim3, std::less<ORB_SLAM2::KeyFrame*>, Eigen::aligned_allocator<std::pair<const ORB_SLAM2::KeyFrame*, g2o::Sim3> > >’:
/home/lhq/catkin_ws/src/ORB_SLAM2/src/LoopClosing.cc:439:21:   required from here
/usr/include/c++/9/bits/stl_map.h:122:71: error: static assertion failed: std::map must have the same value_type as its allocator
  122 |       static_assert(is_same<typename _Alloc::value_type, value_type>::value,
      |                                                                       ^~~~~
In file included from /usr/include/c++/9/map:61,
                 from /home/lhq/catkin_ws/src/ORB_SLAM2/Thirdparty/DBoW2/DBoW2/BowVector.h:14,
                 from /home/lhq/catkin_ws/src/ORB_SLAM2/include/KeyFrame.h:25,
                 from /home/lhq/catkin_ws/src/ORB_SLAM2/include/MapPoint.h:24,
                 from /home/lhq/catkin_ws/src/ORB_SLAM2/include/Map.h:24,
                 from /home/lhq/catkin_ws/src/ORB_SLAM2/include/Optimizer.h:24,
                 from /home/lhq/catkin_ws/src/ORB_SLAM2/src/Optimizer.cc:22:
/usr/include/c++/9/bits/stl_map.h: In instantiation of ‘class std::map<ORB_SLAM2::KeyFrame*, g2o::Sim3, std::less<ORB_SLAM2::KeyFrame*>, Eigen::aligned_allocator<std::pair<const ORB_SLAM2::KeyFrame*, g2o::Sim3> > >’:
/home/lhq/catkin_ws/src/ORB_SLAM2/src/Optimizer.cc:819:37:   required from here
/usr/include/c++/9/bits/stl_map.h:122:71: error: static assertion failed: std::map must have the same value_type as its allocator
  122 |       static_assert(is_same<typename _Alloc::value_type, value_type>::value,

改正:
将 from /home/lhq/catkin_ws/src/ORB_SLAM2/include/LoopClosing.h:24,中loopclosing文件49行

typedef map<KeyFrame*,g2o::Sim3,std::less<KeyFrame*>,
        Eigen::aligned_allocator<std::pair<const KeyFrame*, g2o::Sim3> > > KeyFrameAndPose;

改为

typedef map<KeyFrame*,g2o::Sim3,std::less<KeyFrame*>,
       Eigen::aligned_allocator<std::pair<KeyFrame *const, g2o::Sim3> > > KeyFrameAndPose;
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值