无法创建自定义消息

时间:2015-01-11 16:06:17

标签: ubuntu-12.04 feature-detection surf ros

您好我正在尝试为exisitng包创建自定义消息但是我创建了Point_id.msg但是当我将其作为头文件包含在我的代码中时,我收到以下错误

/home/111/222/333/find_object_2d/src/objects_detected.cpp:7:41: fatal error:       
find_object_2d/PointObjects.h: No such file or directory
compilation terminated.
make[2]: *** [find_object_2d/CMakeFiles/objects_detected.dir/src/objects_detected.cpp.o] Error 1
make[1]: *** [find_object_2d/CMakeFiles/objects_detected.dir/all] Error 2
make: *** [all] Error 2
Invoking "make" failed

这是我在Point_id.msg中包含的内容:

int16 id
geometry_msgs/Point punto

这是我在代码中的include标头:

#include <find_object_2d/PointObjects.h>
#include <find_object_2d/Point_id.h

在现有的cmakelist.txt中,没有#rosbuild_gensrv()的迹象 所以我应该在现有的包中创建一个新的包并在src文件夹中创建.msg文件并尝试构建它?或者我该怎么办?我真的很困惑。

请帮助谢谢!

1 个答案:

答案 0 :(得分:0)

您必须稍微修改软件包的CMakeLists.txt,否则将不会生成* .h文件。

如果您使用rosmake:

只需将rosbuild_genmsg()添加到CMakeLists.txt

即可

如果你使用catkin:

使用catkin它有点复杂:

添加&#34; message_generation&#34;到find_package(catkin REQUIRED COMPONENTS ...

add_message_files(
  FILES
  Point_id.msg
)
generate_messages(
  DEPENDENCIES
  geometry_msgs
)

我希望,这有帮助。