参考:https://blog.csdn.net/weixin_43651761/article/details/85557291
两点
1.首先是需要修改被引用的A功能包CmakeList.txt
2.修改自己B功能包的CmakeList.txt
A的修改:
1)catkin_package(
INCLUDE_DIRS include
#LIBRARIES motordriver
#CATKIN_DEPENDS roscpp rospy std_msgs
#DEPENDS system_lib )
2)include_directories( include ${catkin_INCLUDE_DIRS} )
B的修改:
1、修改package.xml文件(这项好像不修改也能编译成功):
<build_depend>A_package</build_depend>
<exec_depend>A_package</exec_depend>
2、修改CMakeList.txt文件:
find_package( catkin REQUIRED COMPONENTS
roscpp
rospy
std_msgs
A_package ) (这一步很重要!!!)
catkin_package( INCLUDE_DIRS include
#LIBRARIES tracking
#CATKIN_DEPENDS roscpp rospy std_msgs
#DEPENDS system_lib ) (这一步好像也是不修改也OK)
include_directories(include ${catkin_INCLUDE_DIRS})
add_dependencies(MapVeh mmlidar)//解决先后编译的问题
3、然后B_package中的‘.cpp’文件引用的时候需要指出‘.h’文件的所属功能包:
#include <A/mymsg.h>