1. package.xml使用说明
a. pacakge.xml 包含了package的名称、 版本号、 内容描述、 维护人员、 软件许可、 编译构建工具、 编译依赖、 运行依赖等信息。
2. package.xml写法
a. pacakge.xml 遵循xml标签文本的写法, 由于版本更迭原因, 现在有两种格式并存( format1与format2) , 不过区别不大。 老版本( format1) 的 pacakge.xml 通常包含以下标签:
i. format1:
Num | name | Explanation |
1 | <pacakge> | 根标记文件 |
2 | <name> | 包名 |
3 | <version> | 版本号 |
4 | <description> | 内容描述 |
5 | <maintainer> | 维护者 |
6 | <license> | 软件许可证 |
7 | <buildtool_depend> | 编译构建工具, 通常为catkin |
8 | <build_depend> | 编译依赖项, 与Catkin中的 |
9 | <run_depend> | 运行依赖项 |
PS:其中1-6为必备标签,1是根标签嵌套了其余所有标签,2-6是包的各种属性,7-9是编译相关信息。
ii. format2:
Num | name | Explanation |
1 | <pacakge> | 根标记文件 |
2 | <name> | 包名 |
3 | <version> | 版本号 |
4 | <description> | 内容描述 |
5 | <maintainer> | 维护者 |
6 | <license> | 软件许可证 |
7 | <buildtool_depend> | 编译构建工具,通常为catkin |
8 | <depend> | 指定依赖项为编译、 导出、 运行需要的依赖,最常用的依赖标记。 |
9 | <build_depend> | 编译依赖项 |
10 | <build_export_depend> | 导出依赖项 |
11 | <exec_depend> | 运行依赖项 |
12 | <test_depend> | 测试用例依赖项 |
13 | <doc_depend> | 文档依赖项 |
红色为新增的标签,蓝色是老版本更改的标签。
3. 新老版本对比:(与老版本不同的地方都已经红字标注)
<?xml version="1.0"?>
<package format="2"> <!--在声明pacakge时指定format2,为新版格式-->
<name>turtlesim</name>
<version>0.8.1</version>
<description>turtlesim is a tool made for teaching ROS and ROS packages.</description>
<maintainer email="dthomas@osrfoundation.org">Dirk Thomas</maintainer>
<license>BSD</license>
<url type="website">http://www.ros.org/wiki/turtlesim</url>
<url type="bugtracker">https://github.com/ros/ros_tutorials/issues</url>
<url type="repository">https://github.com/ros/ros_tutorials</url>
<author>Josh Faust</author>
<buildtool_depend>catkin</buildtool_depend> <!--编译工具为catkin-->
<depend>geometry_msgs</depend> <!--用depend来整合build_depend和run_depend-->
<depend>rosconsole</depend>
<depend>roscpp</depend>
<depend>roscpp_serialization</depend>
<depend>roslib</depend>
<depend>rostime</depend>
<depend>std_msgs</depend>
<depend>std_srvs</depend>
<build_depend>qtbase5-dev</build_depend> <!--build_depend标签未变-->
<build_depend>message_generation</build_depend>
<build_depend>qt5-qmake</build_depend>
<exec_depend>libqt5-core</exec_depend> <!--run_depend要改为exec_depend-->
<exec_depend>libqt5-gui</exec_depend>
<exec_depend>message_runtime</exec_depend>
</package>