1 新建工作文件夹
使用mkdir命令新建文件夹 slambook和ch1文件夹,并利用cd命令进入ch1文件下,截图如
2 编写helloslam小程序
使用vim命令创建helloslam.cpp文件,并填写如下代码
按esc键,输入:wq退出
3 编译helloslam程序
3.1 使用g++命令编译
编译命令使用如下图
此时利用ls命令可以看到ch1文件夹下多了一个a.out的可执行文件,其中a.out是该命令默认生成的可执行文件名字
若想生成其他名字的可执行文件,在调用g++命令时在其后添加-o,如下,可看到生成了hell的可执行文件
补充:关于g++命令的补充说明
g++ –c Hello.cc 编译文件,生成目标文件 Hello.o
g++ Hello.o –o abc 连接 并重命名为可执行文件 abc
g++ Hello.cc 编译连接一起,生成a.out
g++ Hello.cc –o hello 生成a.out并命名为hello
3.2 使用cmake编译
理论上说,任意一个C++ 程序都可以用g++ 来编译。但当程序规模越来越大时,一个工程可能有许多个文件夹和里边的源文件,这时输入的编译命令将越来越长。通常一个小型c++ 项目含有十几个类,各类间还存在着复杂的依赖关系。其中一部分要编译成可执行文件,另一部分编译成库文件。如果仅靠g++ 命令,我们需要输入大量的编译指令,整个编译过程会变得异常繁琐。因此,对于C++ 项目,使用一些工程管理工具会更加高效。在历史上工程师们曾使用makefile 进行自动编译,但下面要谈的cmake 比它更加方便
在一个cmake 工程中,我们会用cmake 命令生成一个makefile 文件,然后,用make命令,根据这个makefile 文件的内容,编译整个工程
首先利用rm命令将之前生成的可执行文件删除,此时ch1文件夹下只包含一个helloslam.cpp文件
3.2.1 制作一个工程
在ch1文件夹下,利用vim命令新建一个CMakeLists.txt文件,在该文件中添加如下部分
每个CMakeLists.txt 文件,告诉cmake 我们要对这个目录下的文件做什么事情。CMakeLists.txt 文件内容需要遵守cmake 的语法。这个示例中,我们演示了最基本的工程:指定一个工程名和一个可执行程序
注意:cmake根据CMakeLists.txt文件生成包含一系列文件的工程,其中生成的最重要的文件时makefile文件,make命令会根据此文件所制定的规则生成一些列文件(文件可能是库文件,也可能是可执行程序)
此时ch1文件夹下只有2个文件,如下
3.2.2 调用cmke命令新建工程
命令使用如下,注意cmake命令后