ROS 中 package.xml与CMakeList的关系

ROS中package.xml与CMakelist.txt中对于package依赖的关系!!!

        !!CMakeList.txt文件并不知道package.xml文件的存在。!!
                       重要的事情先说

在本人对于ROS的学习过程中发现,在构建CATKIN package的时候,对于各种其他包的依赖不仅在package.xml文件中声明,还要再CMakeList.txt文件中重复声明,经过几天的资料查找,才找到结果希望对大家有帮助,(当然有不对的地方也请大家提出来)!
1:首先最重要的一点:==CMakeList.txt文件并不知道package.xml文件的存在。==但是catkin(编译系统)是知道package.xml文件存在的。而且在编译的时候读取CMakeList.txt文件时在查找依赖的package时,会有到ros的rospack(后面马上会解释),这也就是为什么CMakeList.txt文件明明不知道package.xml文件的存在为什么我们不写package.xml文件有时还是编译不过去的原因。
2:package.xml文件主要是提供给ROS文件系统的,ROS会读取每一个包的package.xml文件来维护各个包的位置与依赖关系,package.xml也是一个文件可以称为package所必须的文件,在我们使用rospack查找一个package时,ros是读取各个package.xml文件来确定package的位置。

你可能感兴趣的:(ROS)