1、使用 BehaviorTree.cpp 编写一个行为树文件内容,例如 test.cpp 与 test.h 文件。
2、然后将最小化的行为树文件夹,放到FRR代码的根目录下,可以命名此文件夹为 bt/ :
其中 behaviortree_cpp_v3/,是行为树的工程文件夹;
此处我的测试文件为 isis_fsm2bt,分别有 .cpp 和 .h 文件;
libbehaviortree_cpp.v3.a 为行为树的链接库;
其中 demo-isis_fsm2bt.o 不需要管,这个是在编译过程中自动生成的;
然后这里最重要的,也是需要我们新构建的,就是 subdir.am 文件。
3、其中 subdir.am 文件内容如下:
定义生成可执行文件名为 demo;
定义文件的源文件为 test.cpp(此处及以下我都写的文件的绝对路径);
定义文件的c/c++的预编译宏为 behaviortree_cpp_v3 文件;
定义文件的其他对象的系统库,分别为 behaviortree_cpp_v3 ,THREAD_LIBS 和 DL_LIBS。
4、在FRR代码的根目录下,找到 Makefile.am 文件,在合适的位置加入 include bt/subdir.am 这行代码(这里源文件会有一堆的 include ,在其后面加上这句话就可以了),表示当FRR主目录进行编译时,也会进入 bt 文件夹下进行这个子目录编译。
5、此时,就可以按照FRR代码原有的编译命令,先 autoconf 更新一下我们的编译文件,然后按照官网内容执行以下命令: ./bootstrap.sh ,make;然后你就会在FRR根目录下,发现这个 demo 可执行文件: