首先,已经可以根据demo仿写自己的工程,同时也就调用了系统自带的函数,这些函数在demo都有使用,很容易成功;其次,在上一篇中介绍了ROS2中系统API函数原型,这样也就可以调用demo中没有用到的系统中的函数;现在记录一下,ROS2中如何调用自定义cpp文件和h文件的方法。
先来干货再举例,在Ubuntu1804中是没有IDE编译器的,所以自定义的cpp文件和h文件需要手动关联起来,同时调用路径也需要手动添加。新建一个include文件夹,在其中新建ZtMathLibrary.cpp和ZtMathLibrary.h两个文件。
ZtMathLibrary.cpp内容如下:
ZtMathLibrary.h内容如下:
重点来了,在CMakeLists.txt中添加寻找include文件夹的路径;同时需要将ZtMathLibrary.cpp文件进行编译,传统的IDE编译器中会自动编译.cpp文件,并将其与.h文件关联,在Ubuntu1804系统中需要手动编译.cpp文件才可以与.h文件关联。
添加如下内容:
下面就是调用了,首先在主函数文件中声明ZtMathLibrary.h文件
#include "ZtMathLibrary.h";
如果是写在库中函数是写在namespac中的,需要引用using namespace CHJ_RJZX_ZtLibrary;
在主函数中将需要调用的类进行实例化,再调用类中函数,调用如下:
至于为什么要自建库呢,方便阅读和管理,可以有自建的数学库,纯算法库,校验库等等。