一. 问题
在catkin_make一个包含mavros包的工程时,会索引到另一个工程中的mavros包。由于两个包版本不一样,导致程序编译后出现问题。
二. 分析及解决
通过分析可知,系统环境中包含了另一个工程的路径,导致工程编译时优先去寻找另一个工程下的包。而环境在.bashrc中定义,因此我们进入.bashrc文件,修改source的路径:
$ sudo gedit ~/.bashrc
若本工程为catkin_ws,另一个工程为auto_landing,则进行以下操作:
# source ~/auto_landing/devel/setup.bash
source ~/catkin_ws/devel/setup.bash