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

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

  • 简述
    • 关于eigen3和pangolin头文件变红的问题
    • 关于eigen3和pangolin头文件变红修复
    • VScode需要用到的插件
    • VScode编译和调试部分
    • 思考

简述

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

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

我发现高翔在14讲文中用的头文件是:
#include
而这个代码在我这边是报错的,但是可以可用如下代码:
#include
当我正在窃喜,立马点击运行文件,发现pangolin库报错。
好的,我点开了如下几个报错的库文件,发现pangolin的包里所有带有eigen模块的声明都是#include
我也不可能一个个去改成#include
于是我又想了别的方法。就是将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 也报了红色的波浪线。
于是乎同上操作
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文件夹,如图所示:

SLAM 14讲 ch3 使用vscode编译 基于ubuntu20.04_第1张图片
如果没有build文件夹,可以自己新建一个或者在终端的example目录下mkdir build
需要注意的是其中

string trajectory_file = "./trajectory.txt";

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

思考

按我常规编译普通c++文件的思路,点击右上角编译 运行 会报一堆错误SLAM 14讲 ch3 使用vscode编译 基于ubuntu20.04_第5张图片
其中编译的时候是完好的,并没有错误代码。但是直接运行就会爆一堆库文件的链接错误。
我也尝试直接在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

你可能感兴趣的:(cmake,ubuntu,vscode,slam,c++)