win10+VS2019配置Sophus库及使用VS2019自带的Cmake工具

在学习高翔老师的《视觉SLAM十四讲》第二版时,对于在Windows系统上进行代码复现遇到的困难将会在这里进行更新。对于VS各个版本的安装个人认为网上各个博客都很详尽,目前不予累述。而在Windows中下载与安装Eigen3库也有很多博客提供说明。然而对于Sophus库的安装与使用仍存在一定问题,本文给出实测下的一种方法。

win10+VS2019配置Sophus库及使用VS2019自带的Cmake工具

前置工作

首先,Sophus库是基于Eigen3库的,所以其前提要求是下载并配置好Eigen3库。
其次,Sophus库直接下载在网上博客中被认为不可行,所以需要使用git命令。
Eigen3的安装在这里不予累述,而git的安装与使用参考Pro Git book即可。

下载Sophus库

  1. 首先,使用cmd或powershell,进入你想要存放Sophus源码的地方(当然,你没有这个文件夹或者想要换个地方存储时,可以使用右键新建一个,或者在通过命令行新建一个)(如果你的电脑还可以的话,推荐你使用微软官方商城的terminal,他会让你的命令行更加好看)。
    当然,在你下载了Windows Terminal Preview以及Git后,可以通过terminal打开git,如下图所示。
    Windows Terminal Preview展示
cd D:\Program
  1. 然后通过下面的命令下载Sophus库。
git clone -q --branch=master https://github.com/strasdat/Sophus.git
  1. 通过cd进入Sophus文件夹,在Sophus文件夹下执行下面命令(虽然我也不知道这个是干啥的,但是跟着来就对了)。
git checkout -qf d63ad09177f6b99ba605d684bac7f4b8d6820f5a

下载Sophus库的过程图
经过上面的步骤后,效果应该如上图所示,如果你没有装Cmake的话,应该和我一样,出现同样报错,至于建立build文件夹,请你忽略,这个后来发现好像没啥用…。

使用VS2019的Cmake

在本步之前和网上的博客没啥很大的区别,然而,在本步,网上的博客大多都采用了cmke工具,但是没有指明是哪里的Cmake,个人猜测,大家都是重新下载了Cmake。然而,在VS2019中,如果你在下载2019的时候勾选了相关选项,VS2019是集成了Cmake的,所以我们认为,既然有集成,那必然可以使用,现在的报错应该是环境变量或者其他问题。

如果你使用VS2019打开Sophus文件夹,会自动调用Cmake,但是由于没有导入Eigen3库,会出现报错。而在这里导入Eigen3库,目前我没有找到这样的办法(可能将Eigen放到C++的标准库那边的文件夹是可以的,但是没有尝试)。而我采用了另外一种方法。

  1. 找到下面的这个工具,进行双击。
    找到需要使用的VS2019的命令行工具
    其效果如下图所示:
    VS2019命令行效果图
  2. 进入你存放Sophus库的位置(注意不需要build文件夹,进入原本的Sophus文件夹即可)。
cmake -G "Visual Studio 16 2019" -Thost=x64 -DLLVM_ENABLE_PROJECTS=clang -D EIGEN3_INCLUDE_DIR=D:\Program\eigen-3.3.9 -D CMAKE_BUILD_TYPE=Debug

具体说明一下参数含义:

  • -G后面跟的是指定的Generator,这里当然是我们的VS2019,16也是对应于你的VS版本的;
  • 第一个 -D后面跟的是Eigen库的位置,这个只要改成你的Eigen库的位置即可;
  • 第二个 -D用来指定编译模式,建议写上用来指定为Debug模式。
  • 当然你也可继续指定 -T,例如host=x64;
  • 以及 -D,LLVM_ENABLE_PROJECTS=clang。
  1. 执行msbuild。
    执行如下代码,引号内为Sophus.sln路径,效果图如下所示。
msbuild "D:\Program\Sophus\Sophus.sln"

执行msbuild
4. 耐心等待,成功
msbuild成功
5. 输入ctest,测试成功。
ctest成功

参考文档

排名不分先后。
[1]: https://www.freesion.com/article/6450253295/
[2]: https://blog.csdn.net/AI_BN/article/details/107557279
[3]: https://blog.csdn.net/qq_36390344/article/details/107059388

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
要在vscode中配置Sophus,首先需要在您的项目中使用CMakeLists.txt文件进行配置。在CMakeLists.txt中,您需要设置Sophus的路径,并添加相关的包含目录和链接库。以下是一个示例的CMakeLists.txt文件: ``` cmake_minimum_required(VERSION 2.8) PROJECT(DemoSophus) FIND_PACKAGE(Sophus REQUIRED) SET(CMAKE_EXPORT_COMPILE_COMMANDS ON) SET(SOPHUS_INCLUDE_DIR /usr/local/include/sophus) SET(EIGEN_INCLUDE_DIR /usr/local/include/eigen3) SET(ALL_CODE_LIST Sophus.cpp) SET(SOPHUS_LIBRARIES /usr/local/lib/libSophus.so) MESSAGE(STATUS "This is binary dir: " ${DemoSophus_BINARY_DIR}) MESSAGE(STATUS "This is source dir: " ${DemoSophus_SOURCE_DIR}) INCLUDE_DIRECTORIES(${SOPHUS_INCLUDE_DIR}) ADD_EXECUTABLE(Sophus ${ALL_CODE_LIST}) TARGET_LINK_LIBRARIES(Sophus ${SOPHUS_LIBRARIES}) ``` 在这个示例中,您需要将`/usr/local/include/sophus`和`/usr/local/lib/libSophus.so`替换为您机器上实际的Sophus路径。确保您的项目目录中存在这个CMakeLists.txt文件。 接下来,您需要在vscode中安装CMakeCMake Tools和C/C++插件。然后打开您的项目文件夹,在.vscode文件夹中创建一个名为`settings.json`的文件,并添加以下内容: ``` { "cmake.configureOnOpen": true, "cmake.buildDirectory": "${workspaceFolder}/build", "cmake.sourceDirectory": "${workspaceFolder}", "cmake.configureSettings": { "CMAKE_EXPORT_COMPILE_COMMANDS": "YES" } } ``` 保存并关闭`settings.json`文件。 最后,重新打开您的项目文件夹,vscode将自动检测到CMakeLists.txt并配置项目。在vscode的终端中,您可以使用以下命令来构建和运行项目: ``` cd build cmake .. make ./Sophus ``` 这样,您就成功配置了vscode以使用Sophus库。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [从零开始的VIO——Eigen和Sophus的安装配置](https://blog.csdn.net/EternalGlory_wx/article/details/104423759)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [VScode单步调试](https://blog.csdn.net/fb_941219/article/details/93511926)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值