一、问题描述
在自己创建的一个功能包,需要引用package1中的msg或srv头文件时,第一次编译,总是报错,找不到package1的头文件,再次编译,才可以通过而不报错。
二、原因分析
主要还是包编译时序的问题,自己的包先于package1的编译,就会导致此问题。
1、将需要依赖的包,尽量放在前面
find_package(catkin REQUIRED COMPONENTS
package1
roscpp
rospy
)
catkin_package(
# INCLUDE_DIRS include
# LIBRARIES define_msg
CATKIN_DEPENDS package1 roscpp rospy
# DEPENDS system_lib
)
2、关键一步,在add_dependencies中添加依赖包的指向
add_dependencies(test01_followgoto ${catkin_EXPORTED_TARGETS} package1_gencpp)
再次去测试,初次编译,不再报警了,一遍过,超丝滑!!!