ROS 2机器人开发:从入门到实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.4.4 在Linux中编写C++程序

有了编写Python程序的经验,编写C++程序也轻而易举。在chapt1目录下新建hello_world.cpp,并输入代码清单1-25中的内容,然后保存代码并运行。

代码清单1-25 hello_world.cpp

可以直接使用命令行工具在Ubuntu中编译代码,这个工具就是g++。打开集成终端,进入chapt1目录,然后输入代码清单1-26中的命令,使用g++编译hello_wolrd.cpp代码。

代码清单1-26 使用g++编译hello_world.cpp

可以看到,编译完成后,文件夹下多出了一个a.out文件,并且该文件的名称是绿色的,表示它是可执行文件,使用代码清单1-27中的命令即可执行该文件。

代码清单1-27 执行a.out

使用g++来编译简单的代码文件非常方便,但对于需要各种依赖的复杂代码,使用CMake工具更加方便。在chapt1目录下新建CMakeLists.txt文件,然后输入代码清单1-28中的内容。

代码清单1-28 CMakeLists.txt文件

CMakeLists.txt中的指令一共有三行,第一行用于给出构建当前文件最低的CMake版本,第二行用于声明工程的名字,第三行用于添加一个可执行文件。这里learn_cmake表示可执行文件的名字,hello_world.cpp是可执行文件相对CMakeLists.txt文件的路径。

编写好并保存后,在终端中进入chapt1目录,输入代码清单1-29中的命令就可以将CMakeLists.txt转换为Makefile。

代码清单1-29 使用cmake生成Makefile

cmake命令用于构建CMakeLists.txt,后面的参数“.”表示CMakeLists.txt在当前终端同级目录搜索CMakeLists.txt文件。构建完成后会在当前目录生成结果文件,其中Makefile文件可以被make命令读取并进行代码编译,继续在上面的终端中输入代码清单1-30中的命令即可完成编译。

代码清单1-30 使用make命令完成编译

make命令会调用编译器将代码转换成可执行文件,所以运行完make命令后,查看chapt1目录下的文件,就可以看到生成的learn_cmake可执行文件。输入代码清单1-31中的命令就可以执行learn_cmake。

代码清单1-31 执行learn_cmake