参考 官方教程,注意对package.xml
做下面修改1
2
3<build_depend>rosidl_default_generators</build_depend>
<exec_depend>rosidl_default_runtime</exec_depend>
<member_of_group>rosidl_interface_packages</member_of_group>
在其他包使用自定义的msg/Action
包的时候,编译完成后,去build文件夹里找到可执行文件,结果发现有一个.so没有链接成功1
2
3ldd libmy_node.so | grep my_defined
libmy_defined_msgs__rosidl_typesupport_cpp.so => /home/user/j36_project/install/my_defined_msgs/lib/libmy_defined_msgs__rosidl_typesupport_cpp.so (0x00007a9426d69000)
libmy_defined_msgs__rosidl_generator_c.so => not found
如果直接运行会出错,但如果用ros2 run
运行是正常的,应当是ROS2运行时会建立链接,应当是ament
命令在运行期发挥了作用