外观
踩坑Robotics Stack Exchange2022-09-22
ROS2 同包自定义 msg 头文件无法 include
本文由 AI 根据公开内容整理,可能有误,请以原文为准:Creating a custom msg in ros2(Robotics Stack Exchange #23171)
状态:已解决
问题
包内两个节点通信时创建 msg/Custom.msg,已生成 build/devenv/rosidl_generator_cpp/devenv/msg/custom.hpp,但源码中无法 include 该 hpp 文件。
环境
ROS 2 (Humble / Jazzy) · ROS 2
解决办法
- 保留
rosidl_generate_interfaces(${PROJECT_NAME} "msg/Custom.msg"),但还需让节点目标链接到生成的接口目标。 - ROS 2 Galactic 及以下:对节点如
my_node添加rosidl_target_interfaces(my_node ${PROJECT_NAME} "rosidl_typesupport_cpp")。 - ROS 2 Humble 及以上:添加
rosidl_get_typesupport_target(cpp_typesupport_target ${PROJECT_NAME} "rosidl_typesupport_cpp"),再用target_link_libraries(my_node "${cpp_typesupport_target}")。
原问题作者:Mercury;采纳答案作者:Geoff。原内容依 CC BY-SA 4.0 授权,本页摘要同样依 CC BY-SA 4.0 授权。
来源
本页事实对应的公开页面,以原文为准。