您好我正在尝试为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文件并尝试构建它?或者我该怎么办?我真的很困惑。
请帮助谢谢!
答案 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
)
我希望,这有帮助。