![ROS 2机器人开发:从入门到实践](https://wfqqreader-1252317822.image.myqcloud.com/cover/209/51975209/b_51975209.jpg)
1.4.4 在Linux中编写C++程序
有了编写Python程序的经验,编写C++程序也轻而易举。在chapt1目录下新建hello_world.cpp,并输入代码清单1-25中的内容,然后保存代码并运行。
代码清单1-25 hello_world.cpp
![](https://epubservercos.yuewen.com/6232B7/30716170307984306/epubprivate/OEBPS/Images/40_03.jpg?sign=1738961454-2ITqQQCbtitDw7W8gs6IKPz2dcjNd8gY-0-bb60e2f74387538dca9b7f559773a41f)
可以直接使用命令行工具在Ubuntu中编译代码,这个工具就是g++。打开集成终端,进入chapt1目录,然后输入代码清单1-26中的命令,使用g++编译hello_wolrd.cpp代码。
代码清单1-26 使用g++编译hello_world.cpp
![](https://epubservercos.yuewen.com/6232B7/30716170307984306/epubprivate/OEBPS/Images/40_04.jpg?sign=1738961454-Zkjb5KtjWik4yGoVG3lS13K8gEIsWQHV-0-2e758f8bace8baa3dd5833ff657e97d2)
可以看到,编译完成后,文件夹下多出了一个a.out文件,并且该文件的名称是绿色的,表示它是可执行文件,使用代码清单1-27中的命令即可执行该文件。
代码清单1-27 执行a.out
![](https://epubservercos.yuewen.com/6232B7/30716170307984306/epubprivate/OEBPS/Images/41_01.jpg?sign=1738961454-1MtWRQLQKbm8CCMfcvlkSdhdRoNOv6qO-0-ce00927693eb21391834099feeb06526)
使用g++来编译简单的代码文件非常方便,但对于需要各种依赖的复杂代码,使用CMake工具更加方便。在chapt1目录下新建CMakeLists.txt文件,然后输入代码清单1-28中的内容。
代码清单1-28 CMakeLists.txt文件
![](https://epubservercos.yuewen.com/6232B7/30716170307984306/epubprivate/OEBPS/Images/41_02.jpg?sign=1738961454-KEXvRAIGLSFBl8U00S0oNpmetAjCfWW7-0-9e884ee6235ee87b91b8f724c0234f8f)
CMakeLists.txt中的指令一共有三行,第一行用于给出构建当前文件最低的CMake版本,第二行用于声明工程的名字,第三行用于添加一个可执行文件。这里learn_cmake表示可执行文件的名字,hello_world.cpp是可执行文件相对CMakeLists.txt文件的路径。
编写好并保存后,在终端中进入chapt1目录,输入代码清单1-29中的命令就可以将CMakeLists.txt转换为Makefile。
代码清单1-29 使用cmake生成Makefile
![](https://epubservercos.yuewen.com/6232B7/30716170307984306/epubprivate/OEBPS/Images/41_03.jpg?sign=1738961454-3K074rbCggqcctBOVhZIx1NH2hxnL5eD-0-49f9299199d3e43ec1f253c777f02a05)
cmake命令用于构建CMakeLists.txt,后面的参数“.”表示CMakeLists.txt在当前终端同级目录搜索CMakeLists.txt文件。构建完成后会在当前目录生成结果文件,其中Makefile文件可以被make命令读取并进行代码编译,继续在上面的终端中输入代码清单1-30中的命令即可完成编译。
代码清单1-30 使用make命令完成编译
![](https://epubservercos.yuewen.com/6232B7/30716170307984306/epubprivate/OEBPS/Images/41_04.jpg?sign=1738961454-MlggW5ocif5vF3zGJbZ23EflTlmBOrbZ-0-c071ee4649047cdf9d7389c7230e12f6)
![](https://epubservercos.yuewen.com/6232B7/30716170307984306/epubprivate/OEBPS/Images/42_01.jpg?sign=1738961454-uOQVyaSccVrjJ1a5tT8ZlLcpjvvhZm8x-0-55971c43892aa7c2b0faf06b7f0a3045)
make命令会调用编译器将代码转换成可执行文件,所以运行完make命令后,查看chapt1目录下的文件,就可以看到生成的learn_cmake可执行文件。输入代码清单1-31中的命令就可以执行learn_cmake。
代码清单1-31 执行learn_cmake
![](https://epubservercos.yuewen.com/6232B7/30716170307984306/epubprivate/OEBPS/Images/42_02.jpg?sign=1738961454-4xSx2jLOjnKVR1E2lOBea9cwTlXupxjq-0-69aa9169cf97a607533c30372efd92d1)