ORB-SLAM2在window下的配置 (7)[END]

本文详细介绍了在Windows下配置ORB-SLAM2的步骤,包括手动创建VS工程,添加源码,配置属性表,解决编译错误,如数组定义、预处理器问题、运行库不匹配等。通过修改代码和调整项目设置,最终成功生成可执行文件并实现运行。
摘要由CSDN通过智能技术生成

部署ORB-SLAM2


此系列博客终于接近尾声,走过前方配置依赖库的漫漫长路,我们终于要来部署ORB-SLAM2了!

ORB-SLAM2源码下载:https://github.com/raulmur/ORB_SLAM2

这一次,我们不再用CMake配置工程,我们手动新建一个vs工程,就称为ORB-SLAM2吧,将下载好的源码放在同个目录下,然后右键项目->添加现有代码,将头文件和源文件全部添加进来

此时随便打开一个.cpp来查看,include头文件那里都会有错,我们需要配置一下属性表。将之前制作的几个依赖库的属性表(OpenCV、Pangolin、DBoW2、Eigen3、g2o)添加到Release x64文件夹下,顺便将编译模式调为Release x64.别忘了,要将关于g2o和DBoW2的头文件都改掉,用尖括号来使用它们。

如果你还看到你的ORB-SLAM2头文件有错,多半是你没把源文件和头文件放在同个目录下(我也不喜欢这么做),这个时候可以右键项目->属性->VC++目录->包含目录,为其添加头文件目录,建议使用相对路径。

好了,先什么都不做,编译一下看看吧。不出意外的话,没有报依赖库的错误,而有不少ORB-SLAM2的错误:

  1. 表达式必须含有常量值
  2. 不可指定数组类型 float[N][N]
  3. “usleep”找不到标识符
  4. 表达式计算结果不是常数
  5. 无法打开“sys/time.h”
  6. 无法打开“stdint-gcc.h”
  7. std::vector<int,std::allocator<_Ty>>::vector: 对重载函数的调用不明确

我们来逐一解决,首先,错误1、2是同一种问题,就是使用变量去定义一个数组大小,这在C++标准下是不允许的,但gcc编译器对此支持,想必也是做了转换,我们只要将数组定义的时候用new关键字来定义就好了,如:

// float Distances[N][N</
  • 12
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 42
    评论
评论 42
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值