当前位置: 代码迷 >> 综合 >> 「 SLAM lesson-2.4 」使用 VIM 和 cmake,创建一个简单的工程
  详细解决方案

「 SLAM lesson-2.4 」使用 VIM 和 cmake,创建一个简单的工程

热度:66   发布时间:2023-12-15 10:44:28.0

结合 高翔老师的著作《视觉SLAM十四讲:从理论到实践》,加上小白的工程经验共同完成。建议作为笔记功能反复使用。


一、cmake工程的组成

   一个cmake工程通常由三部分组成:

  1. .txt
  2. .cpp
  3. build文件夹
  • .txt的作用:告诉cmake我们要对这个目录下的文件做什么事情,.txt文件内容需要遵守cmake的语法。
  • .cpp的作用:里面编写我们想要执行的程序。
  • 文件夹的作用:我们在写完.txt和.cpp文件后,在构建文件中对.cpp文件进行编译。(因为.cpp文件编译后,会生成很多描述文件,所以放到一个文件夹里面编译,可以是工程的结构性更强。)

二、cmake工程的执行指令

  一共需要先后输入两条指令。

  • cmake //对工程进行分析
  • make //对工程进行编译

三、创建一个'HelloSLAM'工程 

    说明:这里不详细讲解Linux系统的操作内容,如果有不明白的环节,请查看小白Linux分类下的博客。

        1)创建一个slambook文件夹:

mkdir slambook

         2)进入文件夹后,创建一个CMakeLists.txt文件:

cd slambook
touch CMakeLists.txt  

        3)打开的.txt文件,并在其中输入下面内容:

#打开文件
VIM CMakeLists.txt 
#声明要求的 cmake 最低版本
cmake_minimum_required(VERSION 2.8)#声明一个 cmake 工程
project( HelloSLAM )#添加一个可执行程序
add_executable( helloSLAM  helloSLAM.cpp)

        4)创建一个helloSLAM.cpp文件:

cd slambook
touch helloSLAM.cpp

        ???????5)打开helloSLAM.cpp文件,并在其中输入下面内容:

#打开文件
VIM  helloSLAM.cpp
#include<iostream>
using namespace std;int main(int argc,char** argv)
{cout<<"Hello SLAM!"<<endl;return 0;
}

        6)创建一个build文件夹,并在其中对.cpp文件进行编译

cd slambook
mkdir build
#进入文件夹
cd build#对上层目录中的工程进行分析
cmake..  #对工程进行编译
make

        7)编译后就会生成一个可执行文件(绿颜色的文件名),运行可执行文件

./helloSLAM

看到下方输出白体字“你好SLAM!“

恭喜你,工程建立完毕。

四、工程说明

  • 这里我们选用 cmake-make 的做法,对于项目的编译管理工作,使用若干个比较直观的 .txt 文件,这将明显降低维护整个工程的难度。比如,当我们想增加一个可执行文件时,只需要在 .txt 中添加一行 “add executable”命令即可,而后续的步骤都是不变的。

  • 使用中间文件夹(build)的方式,是为了将编译过程中产生的中间文件集中起来。当我们想发布源代码时,把这个中间目录直接删除即可。

《视觉SLAM十四讲:从理论到实践》 PDF资源

下载链接:Robot_Starscream的资源  仅供各位研究员试读,请购买纸质书籍。

  相关解决方案