285 字
1 分钟
ROS / rosdep / people_msgs 依赖异常记录
在整理 sfm_local_controller 的构建问题时,我把 people_msgs 相关依赖异常 单独摘出来做了一个客观记录。
这篇内容不讨论原因,只列出现象,方便后续回溯和对照。
疑问 1
为什么 package.xml 中声明了 people_msgs,但 rosdep 并没有自动安装它?
现象支撑
sfm_local_controller/package.xml中存在:<build_depend>people_msgs</build_depend><exec_depend>people_msgs</exec_depend>- 在未执行
sudo apt install ros-noetic-people-msgs之前:输出:Terminal window ls /opt/ros/noetic/include/people_msgsNo such file or directory - 说明系统中未安装
people_msgs对应的头文件。
疑问 2
为什么 rosdep resolve people_msgs 报错,但 rosdep install / check 的错误列表中却没有 people_msgs?
现象支撑
- 执行:
输出:
Terminal window rosdep resolve people_msgsERROR: no rosdep rule for 'people_msgs' - 执行:
输出了大量:
Terminal window rosdep install --from-paths src --ignore-src --rosdistro noetic -r -y但列表中不包含Cannot locate rosdep definition for [...]people_msgs。
疑问 3
为什么在未修改 CMakeLists.txt 的情况下,仅通过 apt 安装就能解决编译错误?
现象支撑
- 初始编译错误为:
fatal error: people_msgs/People.h: No such file or directory
- 在未修改以下任一文件的情况下:
CMakeLists.txtpackage.xml
- 仅执行:
Terminal window sudo apt install ros-noetic-people-msgs - 随后在相同工程与相同构建命令下,编译直接通过。
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
ROS / rosdep / people_msgs 依赖异常记录
https://blog.acegaruda.com/posts/social-nav-proj/rosdep-people_msgs/