如何修复 ROS fatal error: ros/console.h: No such file or directory

问题

你正在尝试 colcon build 一个 ROS 库或项目,但你看到以下错误日志:

ros_console_error.txt
In file included from /home/user/message_logger/build/message_logger/include/message_logger/log/log_messages_backend_config.hpp:61,
                 from /home/user/message_logger/include/message_logger/log/log_messages_backend.hpp:46,
                 from /home/user/message_logger/include/message_logger/log/log_messages.hpp:44,
                 from /home/user/message_logger/include/message_logger/message_logger.hpp:43,
                 from /home/user/message_logger/src/demo.cpp:6:
/home/user/message_logger/include/message_logger/log/log_messages_ros.hpp:43:10: fatal error: ros/console.h: No such file or directory
   43 | #include <ros/console.h>
      |          ^~~~~~~~~~~~~~~
compilation terminated.
gmake[2]: *** [CMakeFiles/demo.dir/build.make:76: CMakeFiles/demo.dir/src/demo.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:185: CMakeFiles/demo.dir/all] Error 2
gmake[1]: *** Waiting for unfinished jobs....
gmake: *** [Makefile:146: all] Error 2

解决方案

目前,在撰写本文时,ros-console 包在官方 ROS2 apt 仓库中不可用。

因此,我建议你克隆仓库,使用 colcon 构建它,然后在构建你的包之前 source install/setup.bash

build_rosconsole.sh
git clone https://github.com/ros/rosconsole
cd rosconsole
colcon build
source install/setup.bash

之后(在同一个 shell 中),再次使用 colcon build 构建你的其他包。


Check out similar posts by category: ROS, C/C++