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版本
23 Windows Sever 201服务器系统的安装以及远程控制的设置与使用
UTF-8字符集在Windows Hotspot JVM 1.8.0_201中输出无效编码