
【Windows + VSCode】ORB-SLAM2 从零下载、编译到运行示例完整复现教程目标是在一台新的 Windows 主机上,从下载安装到最终运行 ORB-SLAM2 示例程序(mono_tum/stereo_kitti/rgbd_tum),完整复现 ORB-SLAM2 工程。文章目录【Windows + VSCode】ORB-SLAM2 从零下载、编译到运行示例完整复现教程前言安装基础编译环境安装 MSVC x64 编译器安装 CMake安装 Git安装 VSCode 和插件下载第三方库和官方源码 ORB-SLAM2下载 OpenCV安装 Eigen3安装 GLEW编译 Pangolin下载官方源码 ORB-SLAM2解压视觉词典修改 ORB-SLAM2 源码(Windows 适配)修改主工程 CMakeLists.txt新建 usleep 兼容头文件修复 OpenCV 4 头文件兼容性修复 OpenCV 4 常量兼容性修复 GCC 专属头文件修复 MSVC 可变长数组(VLA)语法修复 MSVC bool 自增语法编译 Thirdparty 子工程编译 DBoW2(Windows 适配)修改Thirdparty/DBoW2/CMakeLists.txt修改 Thirdparty/DBoW2/DBoW2/FORB.cpp编译 DBoW2编译 g2o(Windows 适配)修改 Thirdparty/g2o/CMakeLists.txt修改 Thirdparty/g2o/g2o/stuff/string_tools.cpp编译 g2o复制 .lib 文件到 lib/ 根目录编译主工程 ORB-SLAM2下载数据集并运行下载数据集第一组:TUM RGB-D fr1_xyz(用于 `mono_tum` / `rgbd_tum`)第二组:KITTI Odometry gray(用于 `mono_kitti` / `stereo_kitti`)第三组:EuRoC MAV MH_01_easy(用于 `mono_euroc` / `stereo_euroc`)运行时 DLL 配置运行示例完整编译流程总结前言ORB-SLAM2 是一个实时的视觉 SLAM 库,由萨拉戈萨大学的 Raul Mur-Artal 等人开发。它可以处理单目、双目和RGB-D三种相机输入,实时计算相机轨迹并构建稀疏三维地图,同时支持回环检测和重定位。在 SLAM 系统中,以下三个问题是最核心的:相机当前在哪里? ← Tracking 线程回答 周围环境长什么样? ← Local Mapping 线程构建地图 是否回到过以前的位置? ← Loop Closing 线程检测回环ORB-SLAM2 用四个线程并行回答这些问题:线程做的事Tracking每帧提取 ORB 特征,估计相机位姿Local Mapping插入关键帧,三角化新地图点,局部 BALoop Closing检测回环,矫正累计漂移Viewer3D 可视化显示本文的目标不是讲解 DBoW2 的全部算法细节,而是先解决一个更基础也更容易卡住的问题:如何在 Windows + VSCode 环境下,从零下载依赖、配置 CMake、编译工程,并成功运行 DBoW2 自带 demo。只要能把 demo 跑通,后续再阅读源码、接入 ORB-SLAM、修改词袋模型或做实验,就有了一个可靠的起点。核心依赖关系:ORB-SLAM2 ├── OpenCV → 图像读取、特征提取 ├── Eigen3 → 线性代数(g2o 依赖) ├── Pangolin → 3D 可视化 GUI ├── DBoW2(内嵌) → 词袋模型回环检测 └── g2o (内嵌) → 图优化引擎本文不展开 SLAM 算法细节,重点解决工程复现问题:如何在Windows + VSCode环境下把 ORB-SLAM2 从源码完整编译并运行起来。推荐运行环境:注意事项说明操作系统Windows 10 / Windows 11编译器Visual Studio 2022 的 MSVC x64 编译器构建工具CMake编辑器VSCode第三方库OpenCV 预编译包 + Eigen3 + Pangolin示例根目录D:\ORBSLAMORB-SLAM2 路径D:\ORBSLAM\ORB_SLAM2-masterOpenCV 路径D:\ORBSLAM\opencv\build如果你的工程放在其他盘,例如E:\ORBSLAM或C:\dev\ORBSLAM,后文所有D:\ORBSLAM都需要替换成你的真实路径。安装基础编译环境软件下载说明Visual Studio 2022 Community包含了 MSVC 编译器工具链,同时还包含完整的 IDE(编辑器、调试器、设计器等)Visual Studio 2022 Build Tools(推荐)包含了 MSVC 编译器工具链,但只提供命令行环境,不含 IDE 图形界面CMake跨平台构建工具,现代 C++ 项目必备Git for Windows用于 git clone 下载源码VSCode编辑器安装 MSVC x64 编译器VSCode 只是编辑器,不自带 C++ 编译器。DBoW2 的.cpp文件最终需要 Visual Studio 提供的 MSVC 编译器编译。(博主这里选择安装 Visual Studio 2022 Build Tools)安装 Visual Studio Community 或 Build Tools 时,必须勾选:Desktop development with C++建议确认包含:MSVC C++ x64/x86 build toolsWindows 10 SDK 或 Windows 11 SDKC++ CMake tools for Windows安装完成后,打开开始菜单中的:x64 Native Tools Command Prompt for VS 2022输入:cl如果看到 Microsoft C/C++ 编译器版本信息,说明 MSVC 可用。若提示'cl' 不是内部或外部命令,通常是没有安装 C++ workload,或者打开的是普通 CMD/PowerShell。安装 CMake推荐 Windows x64 Installer(.msi 安装包):双击安装自动配好环境变量,还带图形界面。安装 CMake 时注意勾选:将 CMake 的 bin 文件夹路径添加到系统环境变量中。Add CMake to the PATH environment variable安装完成后,关闭旧终端,重新打开 PowerShell:cmake--version能显示版本号即安装成功。注意:必须安装 CMake,后续 VSCode 的 CMake Tools 插件不能代替 CMake 本体,插件只是帮你调用cmake.exe。安装 Git直接选择“Standalone Installer”下的“Git for Windows/x64 Setup”:这是最标准、最推荐普通用户的安装方式(.exe 安装包)。安装 Git 后,重新打开 PowerShell:git--version能显示版本号即可。若不想安装 Git,也可以从 GitHub 下载 ZIP 源码包。安装 VSCode 和插件先安装 VSCode 本体:安装完成后打开 VSCode,快捷键Ctrl + Shift + X在左侧扩展栏中搜索并安装插件:C/C++ CMake Tools下载第三方库和官方源码 ORB-SLAM2代码下载说明OpenCV 4.8.0 Windows 包OpenCV Windows 自解压包Eigen3线性代数库,纯头文件无需编译GLEWOpenGL 扩展加载库(Pangolin 在 Windows 上的依赖)Pangolin3D 可视化库,需从源码编译ORB-SLAM2 源码本工程官方源码建议把所有三方库和 ORB-SLAM2 源码放在同一个父目录下:D:\ORBSLAM ├── ORB_SLAM2 ← ORB-SLAM2 源码 │ ├── CMakeLists.txt │ ├── include/ │ ├── src/ │ ├── Examples/ │ ├── Thirdparty/ ← DBoW2 + g2o(内嵌) │ ├── Vocabulary/ ← ORBvoc.txt.tar.gz │ └── build/ ├── opencv │ └── build │ ├── OpenCVConfig.cmake │ └── x64\vc16\bin\ ├── eigen-3.4.0 ← Eigen3 头文件目录 ├── glew-2.2.0 ← GLEW 二进制包(Pangolin 依赖) │ ├── include/GL/glew.h │ └── lib/Release/x64/glew32s.lib └── Pangolin ← 从源码编译 └── build/下载 OpenCV下载opencv-4.8.0-windows.exe双击运行,它本质上是自解压包。建议解压到:D:\ORBSLAM解压后应得到:D:\ORBSLAM\opencv\build用 PowerShell 检查关键文件:Test-PathD:\ORBSLAM\opencv\build\OpenCVConfig.cmakeTest-PathD:\ORBSLAM\opencv\build\x64\vc16\bin\opencv_world480.dll两个都输出True,说明 OpenCV 位置正确。安装 Eigen3Eigen3 是纯头文件库,不需要编译。下载后解压到:D:\ORBSLAM\eigen-3.4.0新版 Pangolin 和 g2o 需要 CMake 能找到 Eigen3 的配置文件,因此需要先执行一次 CMake 生成Eigen3Config.cmake:cd D:\ORBSLAM\eigen-3.4.0# 创建构建目录并生成 Eigen3Config.cmakemkdir build cd build cmake..-G"Visual Studio 17 2022"-A x64关键路径:D:\ORBSLAM\eigen-3.4.0\Eigen\Core ← 头文件(无需编译) D:\ORBSLAM\eigen-3.4.0\build\Eigen3Config.cmake ← CMake 查找配置(供 Pangolin/g2o 使用)安装 GLEWGLEW(OpenGL Extension Wrangler Library) 是 Pangolin 在 Windows 上的依赖,用于加载 OpenGL 扩展函数。下载预编译二进制包(选glew-2.2.0-win32.zip)并解压到D:\ORBSLAM\glew:解压后的关键文件:D:\ORBSLAM\glew-2.2.0\include\GL\glew.h ← 头文件 D:\ORBSLAM\glew-2.2.0\lib\Release\x64\glew32s.lib ← 静态库(64 位 Release)GLEW 是二进制包,不需要编译步骤,解压即可用。编译 PangolinPangolin 是 ORB-SLAM2 的 3D 可视化依赖,在 Windows 上需要从源码编译:# 进入 ORBSLAM 父目录cd D:\ORBSLAM# 下载 Pangolin 源码git clone https://github.com/stevenlovegrove/Pangolin.git# 若 GitHub 访问慢使用 gitcode 镜像git clone https://gitcode.com/gh_mirrors/pa/Pangolincd Pangolin# 创建并进入构建目录(隔离编译产物)mkdir build cd build# CMake 配置:指定 VS2022 64 位生成器 + Eigen3 + GLEW 路径cmake..-G"Visual Studio 17 2022"-A x64-DEigen3_DIR=D:/ORBSLAM/eigen-3.4.0/build-DGLEW_INCLUDE_DIR=D:/ORBSLAM/glew-2.2.0/include-DGLEW_LIBRARY=D:/ORBSLAM/glew-2.2.0/lib/Release/x64/glew32s.lib# 编译 Release 版本(生成 pangolin.dll)cmake--build.--config ReleasePangolin 在 Windows 上依赖 OpenGL(系统自带),不需要额外安装。编译完成后关键路径:D:\ORBSLAM\Pangolin\build\Release\pango_core.dll ← 运行时 DLL(多组件) D:\ORBSLAM\Pangolin\build\Release\pango_opengl.dll D:\ORBSLAM\Pangolin\build\Release\pango_video.dll ...(共 8 个组件 DLL) D:\ORBSLAM\Pangolin\build\PangolinConfig.cmake ← CMake 查找配置 D:\ORBSLAM\Pangolin\build\PangolinTargets.cmake下载官方源码 ORB-SLAM2使用 Git 下载(推荐):cd D:\ORBSLAM git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2# G