タイトルのとおりですが、std_msgsとか使ってカスタムメッセージを作るときにハマったので、備忘録的に記載します。
知っていればなんてことはないのですが、
仮に
geometry_msgs/PointStamped[] array
というカスタムメッセージを作るときに
20 | #include "geometry_msgs/msg/detail/point__struct.hpp" | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. gmake[2]: *** [CMakeFiles/msg_interface__rosidl_typesupport_cpp.dir/build.make:140: CMakeFiles/msg_interface__rosidl_typesupport_cpp.dir/rosidl_typesupport_cpp/msg_interface/msg/point_stamped_array__type_support.cpp.o] エラー 1
みたいなエラーが出てしまったときは、CMakeListsに
rosidl_generate_interfaces(${PROJECT_NAME}
"msg/PointStampedArray.msg"
DEPENDENCIES geometry_msgs
)
のような形でDEPENDENCIES書いてあげると通ります。
色々調べていると、find_packageしたりするといいとかありますが、自分の環境では↑だけでよかったです。