提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
问题介绍
提示:这里可以添加本文要记录的大概内容:
——最近学习ROS2,在学习过程中遇到了一个非常难搞的BUG,在创建自己的msg与srv的时候报错(作者用的是windows11下VMware虚拟机安装Ubuntu22.04,ROS2版本为Jazzy)
目录框架:
报错如下:
lqc@lqc-VMware-Virtual-Platform:~/桌面/ros2_ws$ colcon build --packages-select my_robot_interfaces
Starting >>> my_robot_interfaces
--- stderr: my_robot_interfaces
CMake Error at /opt/ros/jazzy/share/rosidl_cmake/cmake/rosidl_generate_interfaces.cmake:234 (list):
list index: 1 out of range (-1, 0)
Call Stack (most recent call first):
CMakeLists.txt:12 (rosidl_generate_interfaces)
CMake Error at /opt/ros/jazzy/share/rosidl_generator_type_description/cmake/rosidl_generator_type_description_generate_interfaces.cmake:68 (message):
Target dependency
'/ros2_ws/build/my_robot_interfaces/rosidl_adapter/my_robot_interfaces/msg/HardwareStatus.idl'
does not exist
Call Stack (most recent call first):
/opt/ros/jazzy/share/ament_cmake_core/cmake/core/ament_execute_extensions.cmake:48 (include)
/opt/ros/jazzy/share/rosidl_cmake/cmake/rosidl_generate_interfaces.cmake:280 (ament_execute_extensions)
CMakeLists.txt:12 (rosidl_generate_interfaces)
---
Failed <<< my_robot_interfaces [10.5s, exited with code 1]
Summary: 0 packages finished [10.6s]
1 package failed: my_robot_interfaces
1 package had stderr output: my_robot_interfaces
提示:以下是本篇文章正文内容,下面案例可供参考
解决方案
主要出现问题的地方是:
list index: 1 out of range (-1, 0)
——读了下cmake的代码,主要问题是无法读取目录位置,少了一位,结合我的文件夹目录,我大概猜出来是“桌面”这个中文报错的问题。
——将目录直接移动到主目录下(或者移动到没有中文路径的文件夹也可),问题顺利解决。
lqc@lqc-VMware-Virtual-Platform:~/ros2_ws$ colcon build --packages-select my_robot_interfaces
Starting >>> my_robot_interfaces
Finished <<< my_robot_interfaces [0.58s]
Summary: 1 package finished [0.72s]