ORB-SLAM2 在mac上编译的错误

在xcode中编译 orb-slam2 遇到很多坑  这里记录一下

 

1. g2o 编译的时候 提示 tr1/xxx.h  找不到

    去掉tr1   引用std::tr1   -> std::

2.#include<stdint-gcc.h> 找不到

   去掉即可

3.usleep找不到  添加头文件 

 #include <unistd.h>

4.map中报Allocator::value_type must be same type as value_type 类型不匹配的错误

 loopclosing.h 中    const KeyFrame * - >   KeyFrame *const

5.YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXB 报错时

https://blog.csdn.net/desirev/article/details/52790869

 

 

编译成功后,配置好参数和数据路径,在mac上直接运行会崩溃,

理由是osx 窗口程序初始化不能在线程中执行,所以需要调整

https://github.com/tlglovewf/ORB_SLAM2   

上面是针对mac 调整后的版本,编译过程就不详解了

 

https://github.com/tlglovewf/VINS_NO_ROS

VINS_MONO 去ROS Mac版本

 

下面这个链接是VIORB  NOROS  MAC版本的适配,有感兴趣的也可以参考下

https://github.com/tlglovewf/VIORB_NOROS_MAC

ps:  如果使用vscode + cmake 在mac上编译相关内容 如果提示

cv 或者其他三方链接库 相关符号找不到 如果确认cmakelist中加入了链接路径

有可能的原因是  vscode cmake工具中编译器选错了 

在控制台里编译的 默认应该是clang++ 编译生成的lib库  所以在vscode cmake中使用的编译器应该是选clang++

设置方式:

command+p  弹出命令框    输入>select a kit   选择clang++

另外:如果osx下 如果cmake不能正常工作 可以考虑在cmakelist中加入

if(CMAKE_HOST_APPLE)

set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,")

set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":")

cmake_policy(SET CMP0042 NEW)

endif()

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值