VS2022+ORB-SLAM3在Windows下编译

一、部署opencv

(1)、下载opencv

官网地址

Releases - OpenCVhttps://opencv.org/releases/下载完成后,根据下载提示进行

(2)、配置环境

配置path路径

二、部署boost

(1)、下载boost

官网下载地址

Boost C++ Librarieshttps://www.boost.org/文件结构如图

(2)、编译boot库

运行该脚本会生成b2.exe应用程序,再通过cmd形式控制b2.exe生成lib、dll

在boost路径下cmd

输入命令

b2.exe --toolset=msvc-14.2 architecture=x86 address-model=64 link=static --build-type=complete --with-system --with-thread --with-date_time --with-filesystem --with-serialization

 命令解析

  • --toolset=msvc-14.2

    • 作用:指定编译器工具链。msvc-14.2对应Visual Studio 2019(MSVC版本号14.2)
    • 常见值:
      • gcc/clang: 跨平台编译时使用

      • msvc-14.1: VS 2017

      • msvc-14.3: VS 2022

  • architecture=x86

    • 作用:指定目标CPU架构为32位x86指令集,生成兼容32位系统的二进制文件。

    • 注意:与address-model=64组合时可能冲突(见下文)

  • address-model=64

    • 作用:指定生成64位地址模型的二进制文件(即64位程序)。
    • 常见值:
      • 32: 32位程序
      • 64: 64位程序
    • 冲突说明:若同时设置architecture=x86address-model=64,实际以address-model为准,生成64位代码
  • link=static

    • 作用:生成静态链接库(.lib文件),编译后的程序运行时无需依赖Boost动态库。
    • 对比:
      • link=shared: 生成动态链接库(.dll+.lib),减少最终程序体积,但需分发动态库
  • --build-type=complete

    • 作用:编译所有可能的库变体,包含:

      • Debug/Release版本

      • 静态/动态链接(需结合link参数)

      • 多线程/单线程(默认多线程)

    • 替代选项:--build-type=minimal仅生成必要库

  • with-<库名>

    • 作用:指定需要编译的Boost库。例如:
      • with-system: 编译Boost.System
      • with-thread: 编译Boost.Thread
      • with-filesystem: 编译Boost.Filesystem
    • 默认行为:不指定时编译所有库,但部分库可能依赖外部组件(如Python)

三、下载CMake工具

(1)、下载CMake

官网地址

Download CMakehttps://cmake.org/download/

如果有下载过Qt Creator IDE的可以直接在里面找,根目录下找到Tools->CMake_64->bin

四、部署第三方库

(1)、编译DBoW2

在ORB-SLAM3forWindows-master文件夹下找到Thirdparty中的DBoW2

修改DBoW2中CMakeLists.txt文件

新建build文件夹

 使用CMake工具编译,生成sln解决方案

 

 打开sln解决方案生成库文件

VC++目录->包含目录

C/C++->代码生成

配置完成后右键->DBoW2项目->生成即可

(2)、编译g2o

在ORB-SLAM3forWindows-master文件夹下找到Thirdparty中的g2o

新建build文件夹,这里的CMakeLists.txt不需要更改

同上,使用CMake工具生成sln解决方案即可,打开sln

 C/C++->常规->附加包含目录

C/C++->预处理器->预处理器定义

 右键->g2o项目->生成即可

(3)、编译Pangolin

在ORB-SLAM3forWindows-master文件夹下找到Thirdparty中的Pangolin

新建build文件夹,这里的CMakeLists.txt也不需要更改 

 

 同上,使用CMake工具生成sln解决方案即可,打开sln

VC++目录->包含目录

VC++目录->库目录

C/C++->常规->附加包含目录

可以指定编译器宏,C/C++—>预处理器—>预处理器定义

COMPILEDWITHC11;

五、编译ORB_SLAM3

(1)、下载ORB_SLAM3

官网下载地址

https://github.com/UZ-SLAMLab/ORB_SLAM3https://github.com/UZ-SLAMLab/ORB_SLAM3

(2)、编译ORB_SLAM3

新建build文件夹

设置CMakeLists.txt

设置完毕后通过CMake工具生成sln解决方案,生成方式同上,然后打开解决方案

VC++目录->包含目录

VC++目录->库目录

C/C++->预处理器->预处理器定义

确保运行为多线程

右键ORB_SLAM3项目->生成,出现opencv找不到错误提示,无法打开包括文件: “opencv/cv.h”: No such file or directory,可修改此处

从opencv的目录结构也可看的出来

 生成ORB_SLAM3,提示"CV_RGB2GRAY": 未声明的标识符,进入Traking.cc文件,添加以下头文件

生成ORB_SLAM3,提示“CvMat”: 未声明的标识符,进入PnPsolver.cc文件 

打开头文件PnPsolver.h,引入以下头文件

再次编译生成ORB_SLAM3,提示"CV_GRAY2BGR": 未声明的标识符 ,再次添加以下头文件

再次编译生成ORB_SLAM3,提示"CV_REDUCE_SUM": 未声明的标识符,添加以下头文件

此时就能生成成功了

六、编译mono_tum

(1)、配置环境

右键mono_tum项目->属性,VC++目录->包含目录

 VC++目录->库目录

C\C++->常规->附加包含目录

 C/C++–>预处理器–>预处理器定义

 确保运行库为多线程

 链接器->输入->附加依赖项

配置完成编译生成就可以通过了

(2)、测试数据

下载地址

https://vision.in.tum.de/rgbd/dataset/freiburg1/rgbd_dataset_freiburg1_desk.tgzhttps://vision.in.tum.de/rgbd/dataset/freiburg1/rgbd_dataset_freiburg1_desk.tgz将rgbd_dataset_freiburg1_desk解压至ORB-SLAM3forWindows-master\Examples\data,data需要自行新建

将所有opencv生成的dll文件、mono_tum应用程序,都放入ORB-SLAM3forWindows-master\Examples\Monocular\Release

修改ORB-SLAM3forWindows-master\Examples\Monocular路径下的TUM1.yaml文件,添加如下代码 

进入ORB-SLAM3forWindows-master\Vocabulary,解压ORBvoc.txt.tar,得到ORBvoc.txt

在ORB-SLAM3forWindows-master\Examples\Monocular\Release

 输入命令

mono_tum 盘符:\ORB-SLAM3forWindows-master\Vocabulary\ORBvoc.txt 盘符:\ORB-SLAM3forWindows-master\Examples\Monocular\TUM1.yaml 盘符:\ORB-SLAM3forWindows-master\Examples\data\rgbd_dataset_freiburg1_desk

如上述操作未能出现界面,以下提供文章供大家参考

opencv参考文章

Windows下 OpenCV 的下载安装教程(详细)_opencv下载-优快云博客文章浏览阅读10w+次,点赞195次,收藏863次。Windows下 OpenCV 的下载安装教程(详细)OpenCV简介OpenCV(Open Source Computer Vision Library)是一个跨平台的计算机视觉库,可以在windows、Linux、Android和Mac OS等操作平台上运行,不但可以运行C和C++,同时提供了Python、Ruby、MATLAB等语言的接口,主要用来实现物体识别、图像分割、人脸识别、动作识..._opencv下载 https://blog.youkuaiyun.com/qq_41277822/article/details/104018866boost参考文章

ORB-SLAM3在windows11下的编译使用_orb-slam3 windows-优快云博客文章浏览阅读3.3k次,点赞12次,收藏25次。近期在学习SLAM,想部署一下ORB-SLAM3,但是自己电脑是win11系统,因此就想着在win11上部署一下。但是网上看了一些教程,有一些博客,但是可能不适合我这种情况把,就很纠结。先说下结果,配置成功,过程极其痛苦。_orb-slam3 windows https://blog.youkuaiyun.com/weixin_44457768/article/details/134547621其他第三方库编译

ORBSLAM3编译生成与应用_orb-slam3 编译生成exe-优快云博客文章浏览阅读2.7k次,点赞7次,收藏23次。ORBSLAM3编译与生成一、下载和安装git代码管理软件1、Git下载地址:Git - Downloads (git-scm.com)2、下载和安装Git,如图:在这里可能会遇到下载慢的问题,因为这是国外的网站,不过问题不大,Git安装软件只有25MB左右的大小,等个几十分钟就可以下载好了。下载好后,直接双击运行下载好的.exe可执行文件,一直默认安装即可!如果觉得上述费时又麻烦,可以先下载腾讯官方提供的软件管家(该软件非常好用,而且无毒无害,电脑用它就够了,都无需安装其他杀毒软件,在里面下_orb-slam3 编译生成exe https://blog.youkuaiyun.com/weixin_46229691/article/details/120829954

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值