package.xml(功能包配置文件)
package.xml文件内容及书写规则
package.xml包含了package的名称、版本号、内容描述、维护人员、软件许可、编译构建工具、编译依赖、运行依赖等信息。
文件写法:遵循XML标签文本的写法,目前存在两种格式,但内容大致一样。(红色字体的是必备标签)
<?xml> | 定义文档语法的语句,放在文档开头 |
<package> | 根标记文件 |
<name> | 包名 |
<version> | 版本号 |
<description> | 功能包的简要说明,通常两三句话说明 |
<maintainer> | 维护者,提供其姓名和电子邮件地址 |
<license> | 版本许可证 |
<url> | 记录描述功能包的说明,如网页、错误管理、存储库的地址等 |
<author> | 记录参与功能包开发的开发人员的姓名和电子邮箱地址, 如涉及多位则在下一行添加<author>标签 |
<buildtool_depend> | 描述构建系统的依赖关系,通常是catkin |
<build_depend> | 编译功能包时所需的依赖项 |
<run_depend> | 运行功能包是所需的依赖名称 |
<exec_depend> | 与<run_depend>功能相同;注:<run_depend>是旧版本的,<exec_depend> 是新版本的,需要注意区分但又要知道二者功能相同 |
<depend> |
定依赖项为编译、导出、运行需要的依赖(最常用)(新版本的) 新版本用<depend>来整合<build_depend>和<run_depend>, |
<build_export_depend> | 导出依赖项 |
<test_depend> | 测试功能包时所需的依赖名称 |
<doc_depend> | 文档的依赖项 |
<export> | 在使用ROS中未指定的标签名称时会用到该标签, 最广泛使用的情况是元功能包的情况, <export><metapackage/></export>格式表明是元功能包 |
<metapackage> | 在export标签中使用的官方标签声明,当前功能包为一个元功能包时声明它 |
例子:
从例子中可以明显看出新旧版本的差别
特别要注意<maintainer>和<url>的格式
<maintainer email="dthomas@osrfoundation.org">Dirk Thomas</maintainer>
<url type="website">http://www.ros.org/wiki/turtlesim</url>
我们向往远方,却忽略了此刻的美丽