Windows10使用OrbSlam3-VS2017-VC12版本

OrbSlam3集成了IMU信息,可用以VIO融合重建。参考这哥们的地址,依据GitHub上的介绍git clone --recursive 之后编译即可

ORBSLAM3 Win10 VS2017 配置简明指南_滥觞LanShang的博客-CSDN博客_orbslam3 windows

Git地址:GitHub - chanho-code/ORB-SLAM3forWindows: ORB-SLAM3 for Windows Platform

编译过程:

1.使用sourcetree git下载

 选择递归: GitHub - chanho-code/ORB-SLAM3forWindows: ORB-SLAM3 for Windows Platform

2.先编译 pangolin;按照这个教程 复制 glew;不然会在cmake之后找不到包含GL/Glew.h

     OpenGL(glut包)在Visual Studio 环境配置 - 简书

问题15>LINK : fatal error LNK1104: cannot open file '..\..\..\lib\Debug\pangolin.lib'

15>已完成生成项目“SimpleRepeatVideo.vcxproj”的操作 - 失败。

17>LINK : fatal error LNK1104: cannot open file '..\..\..\lib\Debug\pangolin.lib'

解决:5>c:\program files\openni\include\XnPlatform.h(58): fatal error C1189: #error :  Xiron Platform Abstraction Layer - Win32 - Microsoft Visual Studio versions above 2010 (10.0) are not supported!

解决: 在cmake里面把OpenNI的包含给去掉,编译lib成功!

3.编译G2O

 根据GitHub上的指导,编译编译G2O;

编译成功,生成dll文件;但是需要静态库lib...

按照前几个条目,修改为lib库的配置,重新编译!或者添加在lib配置里面添加importlib条目名字

问题

几个编译的语法问题,

orb-slam3forwindows\include\Map.h(140): error C2061: syntax error : identifier 'list'

orb-slam3forwindows\include\MapDrawer.h(66):

error C2536: 'ORB_SLAM3::MapDrawer::ORB_SLAM3::MapDrawer::mfFrameColors' : cannot specify explicit initializer for arrays

解决:把那个list的使用函数直接注销掉!

    没法在头文件里面初始化;移动到CC文件里;编译成功!

4.编译OrbSlam3,应该能一次成功;

   生成 ORB_SLAM3.lib 和ORB_SLAM3.dll文件,以动态库的方式调用。

   也可以直接生成程序,测试main()函数

5. 编译示例 程序和引用;以最简单的mono_tum 为例,这个没有使用imu信息,数据较少;

   出现问题  链接不到函数体

mono_tum.obj : error LNK2019: unresolved external symbol "public: __cdecl ORB_SLAM3::System::System(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,enum ORB_SLAM3::System::eSensor,bool,int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0System@ORB_SLAM3@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@0W4eSensor@01@_NH00@Z) referenced in function main

  

解决方法:

   在System.h这个头文件里面,找到构造函数

   System(const string &strVocFile, con..........................

添加 引用声明

_declspec(dllexport)  

System(const string &strVocFile, con..................

编译运行成功

二、测试效果

使用mono_tum 数据集合...

     

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值