描述: 遇到一个问题,某项目需要其他工作空间下的一个package
中自定义的消息类型。
解决:
1.在CMakeLists.txt文件中添加该功能包
位置在find ros相关功能包的地方,其中 roscpp rospy std_msgs
是ros标准格式消息,ros_interface
是其他工作空间的package
find_package (catkin REQUIRED COMPONENTS
roscpp
rospy
std_msgs
ros_interface #lusx 0927
)
2.在include_directories添加功能包的绝对路径
路径尽量写全
include_directories(
${xxx}
...
"your_path/ros_interface/devel/include/ros_interface"
)
3.在自己的代码中添加需要使用的自定义消息的头文件
因为在CMakeLists.txt中已经添加了头文件的绝对路径,所以这里可以直接写头文件名称.
Imu.h
是ros_interface
在编译完成后为自定义消息文件自动生成的头文件
// your.cpp
#include"Imu.h"
...