SLAM 14讲 ch3 使用vscode编译 基于ubuntu20.04

简述

之前一直在琢磨如何使用vscode来进行make和cmake的编译问题,使用ubuntu自带的terminal可以很轻松的编译高翔的ch3并运行,但是到了vscode里就不行。折腾了半天才搞清楚。

关于eigen3和pangolin头文件变红的问题

我发现高翔在14讲文中用的头文件是:
#include <Eigen/Core>
而这个代码在我这边是报错的,但是可以可用如下代码:
#include <eigen3/Eigen/Core>
当我正在窃喜,立马点击运行文件,发现pangolin库报错。
好的,我点开了如下几个报错的库文件,发现pangolin的包里所有带有eigen模块的声明都是#include <Eigen/Core>
我也不可能一个个去改成#include <eigen3/Eigen/Core>
于是我又想了别的方法。就是将eigen3的目录下的Eigen链接到/usr/include中

PS.其实我发现/usr/include目录下本来就有一个Eigen文件夹,里面的内容也是对的,不知道是不是Ubuntu20的bug?所以读取不出来??

关于eigen3和pangolin头文件变红修复

Eigen其代码如下:
在终端中输入
sudo ln -s /usr/include/eigen3/Eigen /usr/include/Eigen
然后我发现pangolin的#include <pangolin/pangolin.h>也报了红色的波浪线。
于是乎同上操作
sudo ln -s /usr/local/include/pangolin/ /usr/include/pangolin
现在准备工作基本做完了。

VScode需要用到的插件

VScode对我这个萌新来说还算友好吧,需要用到的插件有以下几个:

  1. C/C++
  2. CMake
  3. CMake tools
  4. Code runner
  5. Tabnine Aurocomplete AI 自动补全代码
  6. One Dark Pro 黑暗主题
  7. Chinese(Simplified)Language 中文

其中从5开始就是我个人的插件了 。

VScode编译和调试部分

在VScode中打开slambook2中的example文件夹,如图所示:

工程目录下
如果没有build文件夹,可以自己新建一个或者在终端的example目录下mkdir build
需要注意的是其中

string trajectory_file = "./trajectory.txt";

这个trajectory.txt的路径我设置的是相对路径。不一样的可以自己设置。
接着按图所示进行操作
操作步骤编译好了以后,要修改program的目录,在launch.json中修改"program": **"/home/liqunzhao/examples/build/plotTrajectory"***这里要设置为自己的编译完成后的文件所在的目录!!!!!
接着进入如图所示的操作步骤:
调试点击1,然后根据提示配置好调试的GCC以后(我这里用的是g++10-),进行调试,出现选框提示错误,选择仍要调试
最后的结果在这里插入图片描述

思考

按我常规编译普通c++文件的思路,点击右上角编译 运行 会报一堆错误报错目录
其中编译的时候是完好的,并没有错误代码。但是直接运行就会爆一堆库文件的链接错误。
我也尝试直接在CMake里面静态链接libpangolin.so 但无卵用。
查了一下午也没有什么结果。如果知道的可以告诉我一下。

在终端里运行代码则cmake、make 都没问题,运行也没问题。
附上用终端运行的结果:
example目录下有四个文件,分别是CMakelist.txt、trajectory.txt、coordinateTransform.cpp和plotTrajectory.cpp

mkdir build
cd build
cmake ..
make -j16
cp ../trajectory.txt trajectory.txt
./plotTrajectory

在这里插入图片描述

  • 8
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论
要在 Ubuntu 20.04 上安装 SLAM14的相关软件,您可以按照以下步骤进行操作: 1. 安装依赖项: 打开终端,并执行以下命令来安装所需的依赖项: ``` sudo apt-get update sudo apt-get install build-essential cmake git libeigen3-dev libboost-all-dev libopencv-dev ``` 2. 安装 Sophus: Sophus 是一个用于刚体运动和变换表示的 C++ 库,是 SLAM14中经常使用的库。执行以下命令来克隆并编译 Sophus: ``` cd ~ git clone https://github.com/strasdat/Sophus.git cd Sophus mkdir build cd build cmake .. make -j4 sudo make install ``` 3. 安装 Pangolin: Pangolin 是一个轻量级的图形界面库,用于可视化和交互式地显示 SLAM 数据。执行以下命令来克隆并编译 Pangolin: ``` cd ~ git clone https://github.com/stevenlovegrove/Pangolin.git cd Pangolin mkdir build cd build cmake .. make -j4 sudo make install ``` 4. 安装 g2o: g2o 是一个用于图优化的 C++ 库,也是 SLAM14中经常使用的库。执行以下命令来克隆并编译 g2o: ``` cd ~ git clone https://github.com/RainerKuemmerle/g2o.git cd g2o mkdir build cd build cmake .. make -j4 sudo make install ``` 5. 安装 DBoW3: DBoW3 是一个用于特征点词袋模型的 C++ 库,也是 SLAM14中经常使用的库。执行以下命令来克隆并编译 DBoW3: ``` cd ~ git clone https://github.com/dorian3d/DBoW3.git cd DBoW3 mkdir build cd build cmake .. make -j4 sudo make install ``` 6. 安装 OpenCV: 如果您的系统中尚未安装 OpenCV,请执行以下命令来安装 OpenCV: ``` sudo apt-get install libopencv-dev ``` 完成上述步骤后,您应该已经成功安装了 SLAM14所需的软件和库。您可以根据需要在自己的项目中使用它们。请注意,这只是基本的安装步骤,具体的安装过程可能因系统配置和需求而有所不同。如果在安装过程中遇到任何问题,请提供更多的错误信息,以便我能够更好地帮助您解决问题。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

LZZ and MYY

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

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

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

打赏作者

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

抵扣说明:

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

余额充值