Windows10使用OrbSlam3-VS2017-VC12版本

Posted wishchin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 数据集合...

     

以上是关于Windows10使用OrbSlam3-VS2017-VC12版本的主要内容,如果未能解决你的问题,请参考以下文章

Windows10使用OrbSlam3-VS2017-VC12版本

vulstack2 靶场做题笔记

23 Windows Sever 201服务器系统的安装以及远程控制的设置与使用

UTF-8字符集在Windows Hotspot JVM 1.8.0_201中输出无效编码

intel ax201 安装windows server 2019

如何在Windows 10上安装GLXK for CVXPY?