结合 高翔老师的著作《视觉SLAM十四讲:从理论到实践》,加上小白的工程经验共同完成。建议作为笔记功能反复使用。
一、cmake工程的组成
一个cmake工程通常由三部分组成:
- .txt
- .cpp
- 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的资源 仅供各位研究员试读,请购买纸质书籍。