【视觉SLAM】Win10+VS2017配置ORB_SLAM2

前言

说明

本文将在Windows 10和Visual Studio 2017的基础上,记录ORB_SLAM2的配置过程。

【注意】:本文把源代码、编译源代码的VS工程文件夹都放在D盘根目录下,把最后安装位置、编译后的库(包括include目录、lib目录、bin目录等)都放在F盘根目录下!

工作环境

  1. 硬件
    CPU:Intel® Core™ i5-7200U
    GPU:NVIDIA GeForce 940MX
    内存大小:12GB
  2. 软件
    操作系统:Windows 10 专业版 20H2
    IDE:Microsoft Visual Studio Community 2017:版本15.9.24

需要准备的东西

  1. 【某工具】懂的都懂,求审核通过。。。。参考我之前写的一篇博客:【某工具】
  2. 电脑必须带NVIDIA显卡且已装好显卡驱动,内存至少8GB。

安装CUDA

安装CUDA是为了与之后的OpenCV进行联合编译。

查看CUDA版本

打开NVIDIA控制面板,点击“系统信息”,切换到“组件”,看NVCUDA64.DLL的产品名称。比如我这里是CUDA11.0.208,那么就准备安装CUDA11.0版本。
在这里插入图片描述
在这里插入图片描述

下载安装CUDA

点击进入官网下载地址:CUDA官网下载
根据自己的CUDA版本选择。比如我这里下载CUDA Toolkit 11.0,根据实际情况,选择本地安装包(安装包很大,但是安装过程不需要网络)还是网络安装包(安装包很小,但是安装过程需要网络)。比如这里选择了本地安装包。

在这里插入图片描述
在这里插入图片描述
下载完成后,以管理员方式运行。
注意:下图这里只是选择“安装包的解压(Extraction)路径”,并不是最后的CUDA安装位置!解压到桌面也可以!我这里解压到D盘下的CUDA Extraction文件夹中。
在这里插入图片描述
解压完成后,会自动打开CUDA安装程序!
在这里插入图片描述
选择“自定义”,因为本机是首次安装,所以除了第二项“NVIDIA GeForce Experience”之外都勾选上
在这里插入图片描述
在这里插入图片描述
最后,选择安装目录。这才是最后CUDA的安装目录。这里选择都安装在“F:\CUDA11.0”目录下。
在这里插入图片描述
等待安装完成!安装程序关闭后,会自动删除解压文件夹(D:\CUDA Extraction)。
在这里插入图片描述

下载安装CuDNN

从官网下载CuDNN:CuDNN下载,需要先申请一个NVIDIA账号。
在这里插入图片描述
根据CUDA版本选择CuDNN版本(比如我这里的CUDA版本为11.0,因此我选择CuDNN v8.1.1),下载Windows平台的CuDNN库。
在这里插入图片描述
在这里插入图片描述
下载完成后,解压会得到一个名为“cuda”的文件夹。直接把其中的“include”文件夹、“bin”文件夹、“lib”文件夹直接复制到CUDA的安装目录下
在这里插入图片描述

检测CUDA是否安装成功

  1. 打开cmd,输入nvcc -V命令,出现类似于下图的输出则安装成功!
    在这里插入图片描述
  2. 找到CUDA安装目录下的“extras\demo_suite”文件夹(比如我这里是“F:\CUDA11.0\extras\demo_suite\”),按住Shift键,在此处右键,在此处打开PowerShell窗口。输入.\deviceQuery.exe命令,如果出现类似于下图的输出则安装成功!并且要记住“CUDA Capability Major/Minor version number”的值(这里为5.0)。
    在这里插入图片描述
    至此,CUDA安装完成!

安装CMake 3.20.6

CMake用来给之后要下载的源代码创建Visual Studio工程!
在官网给的github网址上找到CMake 3.20.6的压缩包:CMake 3.20.6-Github,下载.zip格式的压缩包。
如果网站进不去,请用【某工具】!
在这里插入图片描述
解压到适当位置并给文件夹重命名(我这里是F:\cmake-3.20.6),然后把bin目录下的“cmake-gui.exe”(我这里是"F:\cmake-3.20.6\bin\cmake-gui.exe")粘贴快捷方式到桌面上。
在这里插入图片描述
至此,CMake3.20.6安装完成!


安装Eigen 3.3.4

下载源代码

首先从官网下载源代码。解压后放在D盘根目录下
再在D盘根目录下新建文件夹“Eigen-Build”作为编译Eigen的VS工程文件夹
在F盘下新建文件夹“Eigen3.3.4”作为编译完成后的安装文件夹
在这里插入图片描述

使用CMake生成VS工程

管理员方式打开CMake3.20.6,
设置好Eigen源代码目录(D:/eigen-3.3.4)和工程目录(D:/Eigen-Build)。
点击“Configure”,设置环境。
在这里插入图片描述
不出意外的话,应该可以看到输出框中的“Configuring done”了(红色的警告不用管)!
CMAKE_INSTALL_PREFIX变量的值设置为Eigen的安装目录(我这里是F:/Eigen3.3.4)
再次点击“Configure”!再次显示“Configuring done”!

点击“Geenerate”生成VS工程,输出“Generating done”!
在这里插入图片描述
再点击“Open Project”,会自动地以管理员方式打开Visual Studio 2017。

编译并安装Eigen

等待VS分析工程和文件完毕后,确保VS当前是“Release”和“×64”模式,在“解决方案资源管理器”中,右键“ALL_BUILD”,点击“生成”。
在这里插入图片描述

可以看到全部输出成功,再右键“INSTALL”,点击“生成”。这时VS会把Eigen安装到之前设置的CMAKE_INSTALL_PREFIX变量的值的位置处(比如我这里是F:/Eigen3.3.4)
在这里插入图片描述
最后,把“F:\Eigen3.3.4\share\eigen3\cmake”中的四个.cmake文件复制到“F:\Eigen3.3.4\include\eigen3”目录下。
在这里插入图片描述
至此,Eigen安装完成!

测试Eigen

接下来测试Eigen是否编译安装成功。
测试代码出自:https://blog.csdn.net/hijack00/article/details/52229076。

在任意位置新创建一个VS空项目,命名为TestEigen,再添加源文件,命名为main.cpp
复制以上链接中提供的测试代码。

将环境设置为“Debug”和“×64”,然后在VS中打开属性管理器界面,右键“Debug|×64”,选择“添加新项目属性表”。这是为了避免之后每次使用到Eigen都要重新设置目录,因此直接把Eigen的目录存放在属性表中,需要用的时候直接调用就可。

属性表的名称就设置为“Eigen64.props”,点击添加。然后双击刚新建的属性表,将“VC++目录”中的“包含目录”添加一项:F:\Eigen3.3.4\include\eigen3
在这里插入图片描述
在这里插入图片描述
按快捷键Ctrl + F5运行,若出现如下图的结果,则表示Eigen编译并安装成功!
在这里插入图片描述
【注意】将测试Eigen创建的“Eigen64.props”属性表(可以在工程文件夹中找到)放到一个合适的位置保留,方便以后调用!

安装OpenCV 3.4.2

使用CMake生成VS工程

如果直接使用OpenCV官网下载下来的源代码的话,会产生比较多的繁琐问题。
因此,我已经将源代码修改好,可以从这里下载:


链接:https://p【防封】an.ba【防封】idu.com/s/1DeCH1【防封】Fm2J5vW【防封】RJ3_yVTcKA
提取码:6666


opencv-3.4.2.raropencv_contrib-3.4.rar都要下载,且都解压到D盘根目录下(我这里都是放在D盘根目录下)。

管理员方式打开CMake3.20.6
设置好OpenCV源代码目录(D:/opencv-3.4.2)和工程目录(D:/OpenCV-Build)。注意是OpenCV的源代码目录而不是opencv_contrib的源代码目录!
点击“Configure”,选择Visual Studio版本和处理器架构。
在这里插入图片描述
在这里插入图片描述
稍微等待后,应该可以看到输出框中的“Configuring done”了!

链接:https://pan.baidu.com/s/1pfwyof3oJA2PxS4OlrkX6A
提取码:6666
【重要】从https://pa【防封】n.ba【防封】idu.co【防封】m/s/1pfwy【防封】of3oJA2PxS4Olr【防封】kX6A(提取码:6666)下载nppicom.libnppim.lib库文件,放在CUDA安装目录下的lib\x64目录下(如F:\CUDA11.0\lib\x64)!


找到OPENCV_EXTRA_MODULES_PATH参数,将其设置为opencv_contrib中的modules目录,注意:目录中应该使用/而不是\!!
在这里插入图片描述
在搜索框中搜索“CUDA”,勾选WITH_CUDA
在这里插入图片描述
除此之外,还要勾选BUILD_opencv_world参数。

另外,找到“EIGEN_INCLUDE_PATH”参数,将其值设置为Eigen3.3.4的路径(F:/Eigen3.3.4/include/eigen3)
在这里插入图片描述
在F盘下新建文件夹“OpenCV3.4.2”用于安装目录,将“CMAKE_INSTALL_PREFIX”参数设置为F:/OpenCV3.4.2。
在这里插入图片描述再次点击“Configure”!

“Configuring done”之后,给CUDA_ARCH_BIN参数设置为之前要记住的“CUDA Capability Major/Minor version number”的值(这里为5.0),勾选“CUDA_FAST_MATH”选项。
再次点击“Configure”!

没出问题的话,再点击“Generate”!
看到“Generating done”的话,再点击“Open Project”打开VS工程!

编译并安装OpenCV3.4.2

等待VS分析解决方案完毕后,确保VS当前是“Debug”和“×64”模式,
在“解决方案资源管理器”中,右键“opencv_world”,点击“生成”。
在这里插入图片描述
等待许久后,提示“成功”!
在这里插入图片描述
为了防止漏掉项目,再次右键“opencv_world”,点击“生成”!
在这里插入图片描述
继续生成,直到输出以下内容:
在这里插入图片描述
再右键“ALL_BUILD”,点击“生成”,生成成功后,同样地,反复多次生成。
在这里插入图片描述
再右键“INSTALL”,点击“生成”。VS会把OpenCV的Debug库安装到指定目录下(F:/OpenCV3.4.2)。
在这里插入图片描述
至此,OpenCV3.4.2的Debug库安装完成!


再来安装OpenCV3.4.2的Release库
切换到“Release”和“×64”模式,同样地,右键“opencv_world”项目,点击“生成”!
在这里插入图片描述
生成成功后,仿照之前的操作再次右键“opencv_world”,点击“生成”!
在这里插入图片描述
同样地,再右键“ALL_BUILD”,点击“生成”,生成成功后,也要反复多次生成。
在这里插入图片描述
最后,右键“INSTALL”,点击“生成”。
至此,OpenCV3.4.2安装完成!

安装Glew 2.1.0和freeglut 3.2.1

下载源代码

从官网给的链接下载Glew源代码。需要【某工具】!!!将解压后得到的glew-2.1.0文件夹移动到D盘。


从官网给的链接下载freeglut源代码。需要【某工具】!!!
【注意】这个解压缩过程可能需要管理员权限!
将解压后得到的freeglut-3.2.0文件夹移动到D盘。

编译Glew 2.1.0

双击打开D:\glew-2.1.0\build\vc12下的glew.sln解决方案。
VS弹出“重定向项目”对话框,点击“确定”。
在这里插入图片描述
确保VS是“Debug”和“×64”模式,右键选择“glew_shared”项目,点击“生成”!
在这里插入图片描述
如果不出意外的话,应该为提示“生成成功”!

右键选择“glew_static”项目,打开属性,确保属性表当前也是“Debug”和“×64”模式
将C/C++→代码生成→运行库,设置为“多线程调试MTd”!
在这里插入图片描述
确定后,右键选择“glew_static”项目,点击“生成”!
生成成功!
至此,Glew 2.1.0的Debug库编译完成!


再来编译Glew 2.1.0的Release库

确保VS是“Release”和“×64”模式,右键选择“glew_shared”项目,打开属性,确保属性表当前也是“Release”和“×64”模式
将C/C++→代码生成→运行库,设置为“多线程DLL(MD)”!
在这里插入图片描述
确定后,右键选择“glew_shared”项目,点击“生成”!

再右键选择“glew_static”项目,点击“生成”!


至此,Glew 2.1.0编译完成!

编译freeglut 3.2.1

在D盘下新建glut-Build文件夹。

以管理员方式权限打开CMake,设置好源代码目录工程目录,点击“Configure”。
配置完成后点击“Generate”生成VS工程。
最后点击“Open Project”打开工程。
在这里插入图片描述
确保VS当前是“Debug”和“×64”模式,
在“解决方案资源管理器”中,右键“ALL_BUILD”,点击“生成”。同样地,需要反复多次生成!
在这里插入图片描述
切换到“Release”和“×64”模式,在“解决方案资源管理器”中,右键“ALL_BUILD”,点击“生成”。同样地,需要反复多次生成!
在这里插入图片描述

安装

在F盘下新建OpenGL文件夹,再在其中创建binincludelib文件夹。
在这里插入图片描述
把以下目录的所有文件复制到bin目录下:

D:\glut-Build\bin\Debug
D:\glut-Build\bin\Release
D:\glew-2.1.0\bin\Debug\x64
D:\glew-2.1.0\bin\Release\x64

把以下目录的所有内容复制到include目录下(把整个GL文件夹复制过去):

D:\freeglut-3.2.0\include
D:\glew-2.1.0\include

把以下目录的所有文件复制到lib目录下

D:\glew-2.1.0\lib\Debug\x64
D:\glew-2.1.0\lib\Release\x64
D:\glut-Build\lib\Debug
D:\glut-Build\lib\Release

至此,Glew 2.1.0和freeglut 3.2.1安装完成!

安装Pangolin

Pangolin-Github网址中下载源代码(需要【某工具】),解压得到的Pangolin-master文件夹移动到D盘,在D盘新建Pangolin-Build文件夹用作工程文件夹。
在F盘新建pangolin文件夹,再在pangolin中新建binincludelib三个文件夹,再在binlib中新建DebugRelease文件夹。


以管理员权限运行CMake,设置好源代码目录工程目录
在这里插入图片描述
点击“Configure”开始配置。若出现以下错误,则将Eigen3_DIR设置为F:/Eigen3.3.4/include/eigen3。然后再次点击“Configure”!

CMake Error at components/pango_geometry/CMakeLists.txt:3 (find_package):
Could not find a package configuration file provided by “Eigen3” with any
of the following names:
Eigen3Config.cmake
eigen3-config.cmake
Add the installation prefix of “Eigen3” to CMAKE_PREFIX_PATH or set
“Eigen3_DIR” to a directory containing one of the above files. If “Eigen3”
provides a separate development package or SDK, be sure it has been
installed.
Call Stack (most recent call first):
CMakeLists.txt:93 (include)

在这里插入图片描述
若出现以下错误,则将GLEW_INCLUDE_DIR设置为F:/OpenGL/include,将GLEW_LIBRARY设置为F:/OpenGL/lib/glew32.lib。然后再次点击“Configure”!

CMake Error at cmake/FindGLEW.cmake:51 (MESSAGE):
Could not find GLEW
Call Stack (most recent call first):
components/pango_opengl/CMakeLists.txt:41 (find_package)
CMakeLists.txt:93 (include)

在这里插入图片描述
配置完成后,点击“Generate”!
如果出现很多个以下错误,则《不必管他》!直接点击“Open Project”打开VS工程!

CMake Error in CMakeLists.txt:
Imported target “Eigen3::Eigen” includes non-existent path
“F://include/eigen3”
in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include:
* The path was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and references files it does not provide.


首先,确保VS当前是“Debug”和“×64”模式!在属性管理器中一次性选中除了ALL_BUILDINSTALLuninstallZERO_CHECK之外的所有工程,右键属性,确保当前属性表也是“Debug”和“×64”模式,在VC++目录包含目录中添加以下两条:

F:\Eigen3.3.4\include\eigen3
F:\OpenGL\include

在这里插入图片描述
在这里插入图片描述
再将属性页的模式(不是VS的模式!)切换成“Release”和“×64”模式,作同样的设置!
在这里插入图片描述

点击确认,关闭属性后,在解决方案资源管理器窗口右键选择pango_python项目,点击“生成”!
在这里插入图片描述
生成成功后,再右键选择ALL_BUILD项目,点击“生成”!
如果出现了以下报错:

error C2039: “min”: 不是“std”的成员

则双击错误列表中的这一项,会跳转到image_io_packed12bit.cpp文件,在文件开头加上#include <algorithm>
在这里插入图片描述
保存后,重新右键选择ALL_BUILD项目,点击“生成”!同样地,要多次、反复生成!
再右键选择INSTALL项目,点击“生成”!多次生成!


把以下文件夹的内容复制到F:\Pangolin\bin\Debug中:

C:\Program Files\Pangolin\bin

把以下文件夹的内容复制到F:\Pangolin\include中:

C:\Program Files\Pangolin\include

把以下文件夹的内容复制到F:\Pangolin\lib\Debug中:

C:\Program Files\Pangolin\lib

然后删除"C:\Program Files\Pangolin"文件夹!


再把VS切换成“Release”和“×64”模式,类似前面的操作,先生成pango_python项目,再生成ALL_BUILD项目,最后就生成INSTALL项目!
全部完成后,把以下文件夹的内容复制到F:\Pangolin\bin\Release中:

C:\Program Files\Pangolin\bin

把以下文件夹的内容复制到F:\Pangolin\lib\Release中:

C:\Program Files\Pangolin\lib

然后删除"C:\Program Files\Pangolin"文件夹!


至此,Pangolin安装完成!

安装ORB_SLAM2

下载源代码

ORB_SLAM2-Github中下载源代码(需要【某工具】)!
把解压得到的ORB_SLAM2-master文件夹移动到D盘!

在安装ORB_SLAM2之前,还需要编译DBoW2和g2o这两个依赖库!

编译DBoW2

"D:\ORB_SLAM2-master\Thirdparty\DBoW2"文件夹复制到D盘,再在D盘下新建DBoW2-Build文件夹用于工程文件夹!
以管理员权限打开CMake,设置源代码目录和工程文件夹目录
在这里插入图片描述
点击“Configure”!如果出现以下错误,则将OpenCV_DIR设置为“F:/OpenCV3.4.2

CMake Error at CMakeLists.txt:31 (message):
OpenCV > 2.4.3 not found.

在这里插入图片描述
再次点击“Configure”,应该就没问题了。
点击“Generate”,再点击“Open Project”。
首先,确保VS当前是“Debug”和“×64”模式!右键选择ALL_BUILD项目,点击“生成”!
如果出现以下错误:

fatal error C1083: 无法打开包括文件: “stdint-gcc.h”: No such file or directory

则双击错误列表中的这一项,会跳转到FORB.cpp文件,将该文件的#include <stdint-gcc.h>这一行注释掉!
在这里插入图片描述
保存后,重新“生成”!应该可以生成成功了。
再打开DBoW2项目的属性页,确保属性页也是“Debug”和“×64”模式!把常规目标文件扩展名设置为.lib,把配置类型设置为静态库。把C/C++代码生成运行库,设置为“多线程调试”!
在这里插入图片描述
在这里插入图片描述
点击确定后,重新“生成”ALL_BUILD项目!


再把VS切换成“Release”和“×64”模式,直接生成“ALL_BUILD”项目!
类似于前面的操作,再把DBoW2项目的“Release”和“×64属性做如下设置:
在这里插入图片描述
在这里插入图片描述
点击确定后,再生成一次“ALL_BUILD”项目!
生成完毕后,DBoW2就编译完成!

编译g2o

"D:\ORB_SLAM2-master\Thirdparty\g2o"文件夹复制到D盘,再在D盘下新建g2o-Build文件夹用于工程文件夹!
以管理员权限打开CMake,设置源代码目录和工程文件夹目录
在这里插入图片描述
点击“Configure”!如果出现以下错误,则将EIGEN3_INCLUDE_DIR设置为F:/Eigen3.3.4/include/eigen3

CMake Error at F:/cmake-3.20.6/share/cmake-3.20/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find Eigen3 (missing: EIGEN3_INCLUDE_DIR EIGEN3_VERSION_OK)
(Required is at least version “3.1.0”)
Call Stack (most recent call first):
F:/cmake-3.20.6/share/cmake-3.20/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
cmake_modules/FindEigen3.cmake:82 (find_package_handle_standard_args)
CMakeLists.txt:70 (FIND_PACKAGE)

在这里插入图片描述
再次点击“Configure”,应该就配置完成!
再点击“Generate”、点击“Open Project”!


首先,确保VS当前是“Debug”和“×64”模式!打开g2o项目的属性页,确保属性页也是“Debug”和“×64”模式!在C/C++命令行其他选项中删掉-W,在C/C++预处理器预处理器定义中添加WINDOWS
在这里插入图片描述
在这里插入图片描述
再将属性页的模式(不是VS的模式!)切换成“Release”和“×64”模式,作类似的设置!
在这里插入图片描述
在这里插入图片描述
再打开"D:\g2o\g2o\core\matrix_operations.h"文件,将第48行和第66行代码的atxpy后加上<Eigen::MatrixXd>
在这里插入图片描述
打开D:\g2o\g2o\core\sparse_block_matrix_ccs.h文件,将第125行代码的atxpy后加上<Eigen::MatrixXd>
在这里插入图片描述

打开"D:\g2o\g2o\core\sparse_block_matrix.hpp"文件,将第277行代码的axpy后加上<Eigen::MatrixXd>,将第279行代码的atxpy后也加上<Eigen::MatrixXd>
在这里插入图片描述
打开"D:\g2o\g2o\core\sparse_block_matrix_diagonal.h"文件,将第97行代码的axpy后加上<Eigen::MatrixXd>
在这里插入图片描述
打开"D:\g2o\g2o\core\robust_kernel.h"文件,把第77行的typedef std::tr1::shared_ptr<RobustKernel> RobustKernelPtr;修改为typedef std::shared_ptr<RobustKernel> RobustKernelPtr;
在这里插入图片描述
打开D:\g2o\g2o\core\hyper_graph.h文件,把第93行的typedef std::tr1::unordered_map<int, Vertex*> VertexIDMap;修改为typedef std::unordered_map<int, Vertex*> VertexIDMap;
在这里插入图片描述
打开D:\g2o\g2o\core\sparse_block_matrix_ccs.h文件,把第226行的typedef std::tr1::unordered_map<int, MatrixType*> SparseColumn;修改为typedef std::unordered_map<int, MatrixType*> SparseColumn;
在这里插入图片描述
打开"D:\g2o\g2o\core\optimization_algorithm_factory.cpp"文件,给文件开头加上#include <algorithm>
在这里插入图片描述
以上工作都完成后,在VS中,右键选择ALL_BUILD项目,点击“生成”!
生成成功后,再打开g2o项目的属性页,确保属性页也是“Debug”和“×64”模式!把常规目标文件扩展名设置为.lib,把配置类型设置为静态库。把C/C++代码生成运行库,设置为“多线程调试”!
在这里插入图片描述
在这里插入图片描述
点击确定后,重新“生成”ALL_BUILD项目!


再把VS切换成“Release”和“×64”模式,直接生成“ALL_BUILD”项目!
生成成功后,类似于前面的操作,再把g2o项目的“Release”和“×64属性做如下设置:
在这里插入图片描述
在这里插入图片描述

点击确定后,再生成一次“ALL_BUILD”项目!
生成完毕后,g2o就编译完成!

编译ORB_SLAM2

首先,在F盘下新建ORB_SLAM2文件夹,再在ORB_SLAM2文件夹中新建binincludelib三个文件夹,再在include中新建Thirdparty文件夹,再在Thirdparty中新建g2oDBoW2两个文件夹。在binlib文件夹下都新建DebugRelease两个文件夹。

把以下文件夹复制到F:\ORB_SLAM2\include\Thirdparty\DBoW2目录中:

D:\DBoW2下的DBoW2文件夹
D:\DBoW2下的DUtils文件夹

把以下文件夹复制到F:\ORB_SLAM2\include\Thirdparty\g2o目录中:

D:\g2o下的g2o文件夹

再把D:\ORB_SLAM2-master\include下的所有文件复制到F:\ORB_SLAM2\include目录下
"D:\g2o\config.h.in"文件复制到F:\ORB_SLAM2\include\Thirdparty\g2o目录下,并重命名为config.h,把其中第4、5行注释掉。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

把以下文件复制到F:\ORB_SLAM2\bin\Debug目录下:

“D:\g2o-Build\Debug\g2o.dll”
“D:\g2o-Build\Debug\g2o.ilk”
“D:\g2o-Build\Debug\g2o.pdb”
“D:\DBoW2\lib\Debug\DBoW2.dll”
“D:\DBoW2\lib\Debug\DBoW2.ilk”
“D:\DBoW2\lib\Debug\DBoW2.pdb”

把以下文件复制到F:\ORB_SLAM2\bin\Release目录下:

“D:\g2o-Build\Release\g2o.dll”
“D:\DBoW2\lib\Release\DBoW2.dll”

把以下文件复制到F:\ORB_SLAM2\lib\Debug目录下:

“D:\g2o-Build\Debug\g2o.lib”
“D:\g2o-Build\Debug\g2o.ilk”
“D:\g2o-Build\Debug\g2o.pdb”
“D:\DBoW2\lib\Debug\DBoW2.lib”
“D:\DBoW2\lib\Debug\DBoW2.ilk”
“D:\DBoW2\lib\Debug\DBoW2.pdb”

把以下文件复制到F:\ORB_SLAM2\lib\Release目录下:

“D:\g2o-Build\Release\g2o.lib”
“D:\DBoW2\lib\Release\DBoW2.lib”

以管理员权限打开Visual Studio,新建→项目→空项目,名称定为“ORB_SLAM2”,放在D盘下。
在这里插入图片描述
再在D:\ORB_SLAM2\ORB_SLAM2目录下新建src文件夹,把D:\ORB_SLAM2-master\src下的所有文件复制到D:\ORB_SLAM2\ORB_SLAM2\src目录下。
在VS的解决方案管理器中,右键源文件,添加→现有项,把D:\ORB_SLAM2\ORB_SLAM2\src下的所有文件添加进来。
在这里插入图片描述
把VS当前模式设置为是“Debug”和“×64”模式。在属性管理器界面,右键“Debug|×64”,选择“添加新项目属性表”,命名为ORB_SLAM2_Debug.props。添加后,双击这个属性表。
在这里插入图片描述
VC++目录包含目录添加:

F:\Eigen3.3.4\include\eigen3
F:\OpenCV3.4.2\include
F:\ORB_SLAM2\include
F:\Pangolin\include
F:\OpenGL\include

在这里插入图片描述
VC++目录库目录添加:

F:\OpenCV3.4.2\x64\vc15\lib
F:\OpenGL\lib
F:\ORB_SLAM2\lib\Debug
F:\Pangolin\lib\Debug

在这里插入图片描述
C/C++预处理器预处理器定义添加:

_WIN_
WIN32
WINDOWS
_WINDOWS
HAVE_EIGEN
HAVE_GLEW
PANGO_DEFAULT_WIN_URI=“winapi”
_ENFORCE_MATCHING_ALLOCATORS=0
_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING
_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS
CMAKE_INTDIR=“Debug”
g2o_EXPORTS

在这里插入图片描述
链接器输入附加依赖项添加:

freeglutd.lib
glew32d.lib
opencv_world342d.lib
opencv_img_hash342d.lib
DBoW2.lib
g2o.lib
pango_core.lib
pango_display.lib
pango_geometry.lib
pango_image.lib
pango_glgeometry.lib
pango_packetstream.lib
pango_opengl.lib
pango_plot.lib
pango_python.lib
pango_scene.lib
pango_tools.lib
pango_vars.lib
pango_video.lib
pango_windowing.lib
tinyobj.lib
opengl32.lib

在这里插入图片描述
C/C++命令行添加/bigobj
在这里插入图片描述
除了以上这些之外,还要对属性表进行如下修改:
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
以上这些全部设置完毕后,确保以下两处的属性页与上面的配置相同!!

  1. 解决方案资源管理器中右键ORB_SLAM2项目→属性打开的属性页
  2. 属性管理器中双击“Debug|×64”打开的属性页

确认无误后,右键选择ORB_SLAM2项目,点击“生成”!
在这里插入图片描述
生成完毕后,再打开ORB_SLAM2项目的属性,做如下设置,即生成.lib库。
再次右键选择ORB_SLAM2项目,点击“生成”!
在这里插入图片描述

至此,完成了ORB_SLAM2Debug库编译!


  • 11
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RayShark1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值