关于ROS中plugin插件调用发布话题编译找不到头文件的问题及解决方案

时间:2024-04-13 16:01:52

本文主要参考了
[https://mp.weixin.qq.com/s?__biz=MzAwNTg5NzUyOA==&mid=2247483849&idx=1&sn=2cce48f657f87e52a997fdb864033bf9&chksm=9b14ed9eac636488d02f9962ec61f5c68097d6c5c913daffa7bcad1d9fc34cbddbd2a1b5ee34&scene=21#wechat_redirect的教程并发现了一些问题。
在编写代码的时候,对一写包名进行了修改,涉及到的pluginlib_tutorials功能包及上一个教程的plugin基础编写的插件代码文件一律改成pluginlib_tutorials_test进行处理,按照教程一步一步来,然后报了如下的错误:

关于ROS中plugin插件调用发布话题编译找不到头文件的问题及解决方案
然后就比较郁闷了,为何按照教程还报错呢,检查了很多遍,代码没错,后来我将丢的头文件polygon_base.h复制到catkin_ws/devel/plugin下,并把plugin_use.cpp 中的头文件由#include <pluginlib_tutorials_test/polygon_base.h>改成#include <plugin_use/polygon_base.h>再次编译就可通过。注意cmakelist里的include_directories(
#include
${catkin_INCLUDE_DIRS}
)
情况一:
Include 前的加#
系统会自动去catkin_ws/devel/下去寻找头文件
情况二:
Include前不加 #
系统会在当前的功能包名/include/当前功能包名/下 寻找所需要头文件
此时在catkin_ws/devel/下去寻找头文件,就该加#
所以结论是:那篇教程跳过了某些步骤,所以这里进行了补充。