参考:http://wiki.ros.org/catkin/package.xml
https://docs.ros.org/melodic/api/catkin/html/howto/format2/index.html
https://docs.ros.org/melodic/api/catkin/html/howto/format2/catkin_library_dependencies.html
1.简介
package.xml文件称之为软件包清单,该文件必须包含在任何与catkin兼容的软件包的根文件夹中。 该文件定义有关软件包的属性,例如软件包名称,版本号,作者,维护者以及对其他catkin软件包的依赖关系结构如下:
<pacakge> 根标记文件
<name> 包名
<version> 版本号
<description> 内容描述
<maintainer> 维护者
<license> 软件许可证
<buildtool_depend> 编译构建工具,通常为catkin
<depend> 指定依赖项为编译、 运行需要的依赖
<build_depend> 编译依赖项
<build_export_depend> 导出依赖项
<exec_depend> 运行依赖项
<test_depend> 测试用例依赖项
<doc_depend> 文档依赖项
2.标签
<depend>
此标签是同时构建和执行依赖性的软件包的快捷方式
<depend> roscpp </ depend>
这等效于以下内容:
<build_depend> roscpp </ build_depend>
<exec_depend> roscpp </ exec_depend>
<build_depend>
此标记声明构建程序所需的软件包,包括开发文件,如头文件,库和配置文件。
<build_depend>eigen</build_depend>
<exec_depend>
此标签声明运行依赖,用于共享库,可执行文件,Python模块,启动脚本和运行包所需的其他文件。
<exec_depend>message_runtime</exec_depend>
所有软件包都至少具有一个依赖,对catkin的构建工具依赖,如以下示例所示。
<package format="2">
<name>foo_core</name>
<version>1.2.4</version>
<description>
This package provides foo capability.
</description>
<maintainer email="ivana@osrf.org">Ivana Bildbotz</maintainer>
<license>BSD</license>
<buildtool_depend>catkin</buildtool_depend>
</package>
指定构建,执行,测试和文档依赖关系示例:
<package format="2">
<name>foo_core</name>
<version>1.2.4</version>
<description>
This package provides foo capability.
</description>
<maintainer email="ivana@willowgarage.com">Ivana Bildbotz</maintainer>
<license>BSD</license>
<url>http://ros.org/wiki/foo_core</url>
<author>Ivana Bildbotz</author>
<buildtool_depend>catkin</buildtool_depend>
<depend>roscpp</depend>
<depend>std_msgs</depend>
<build_depend>message_generation</build_depend>
<exec_depend>message_runtime</exec_depend>
<exec_depend>rospy</exec_depend>
<test_depend>python-mock</test_depend>
<doc_depend>doxygen</doc_depend>
</package>