ROS编译报错:XXX/XXX.h: No such file or directory
问题分析:
/home/ubuntu/Desktop/catkin_ws/src/face_tracker_pkg/src/face_tracker_node.cpp:19:10: fatal error: face_tracker_pkg/centroid.h: No such file or directory
#include <face_tracker_pkg/centroid.h>
报错信息中看,发现是face_tracker_pkg/centroid.h
这个头文件的缺失导致的报错。而这个头文件本应该是由ROS的msg文件生成的。
因此应该是 msg 对应的头文件生成出错。
解决方法:
1.检查 CMakeLists文件
find_package(catkin REQUIRED COMPONENTS
message_generation
message_runtime
roscpp
rospy
std_msgs
)
add_message_files(
FILES
xxx.msg
)
generate_messages(
DEPENDENCIES
std_msgs
)
catkin_package(
# INCLUDE_DIRS include
# LIBRARIES xxxx
# CATKIN_DEPENDS message_generation message_runtime roscpp rospy std_msgs
# DEPENDS system_lib
)
2.检查 package.xml 文件
<build_depend>message_generation</build_depend>
<run_depend>message_runtime</run_depend>
3.先单独编译这个功能包,再整体编译工程(对有多个功能包的项目而言)
指令:catkin_make --pkg xxxx
后面的xxxx是功能包的名字 然后再catkin_make