ros catkin包配置文件package.xml
参考:http://wiki.ros.org/catkin/package.xml1. 概述包清单是一个名为package.xml 的 XML文件,必须包含在任何符合 catkin 的包的根文件夹中。此文件定义有关包的属性,如包名称、版本号、作者、维护者以及其他 catkin 包的依赖项。2. 格式 2(推荐)这是新包的推荐格式。还建议将较旧的格式 1 包迁移到格式 2。有关从格式 1 迁移到格式
参考:http://wiki.ros.org/catkin/package.xml
1. 概述
包清单是一个名为package.xml 的 XML文件,必须包含在任何符合 catkin 的包的根文件夹中。此文件定义有关包的属性,如包名称、版本号、作者、维护者以及其他 catkin 包的依赖项。
2. 格式 2(推荐)
这是新包的推荐格式。还建议将较旧的格式 1 包迁移到格式 2。有关从格式 1 迁移到格式 2 的说明,请参阅在 catkin API 文档中从格式 1迁移到格式 2。
2.1 基本结构
每个包.xml 文件都具有 <package>标记作为文档中的根标记。
<package format="2">
</package>
2.2 必要标签
一个package最少需要包含以下tag来保证配置文件的完整性:
<名称>- 包的名称<version>- 包的版本号(需要 3 个点分隔的整数)<说明>- 包装内容说明<维护者>- 正在维护包裹的人的姓名<许可证>- 发布代码的软件许可证(例如 GPL、BSD、ASL)。
例如,下面是一个叫 foo_core 虚构包的配置文件。
<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>
</package>
name 包的名字version 包的版本号,需要以点将数字分开description 包内容的描述maintainer 维护这个包的作者license - 软件发布时的许可(例如 GPL, BSD, ASL)
2.3 Dependencies
当然,上面给出的示例是一个比较简单的例子,它没有加入任何依赖(dependencies),包依赖可以有6种类型。
depend指定依赖项,最常用buildtool_depend指定构建此包所需的工具,通常唯一的工具就是catkin。build_depend指定构建该包需要哪些包build_export_depend指定根据这个包构建库所需要的包exec_depend运行该包中的代码需要的包test_depend单个测试需要的依赖doc_depend指定此包生成文档时需要的文档工具
所有的包最少都有一个依赖,一个构建工具依赖(buildtool_depend),例如:
<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>
2.4 Metapackages(该章未翻译)
It is often convenient to group multiple packages as a single logical package. This can be accomplished through metapackages. A metapackage is a normal package with the following export tag in the package.xml:
<export>
<metapackage />
</export>
Other than a required <buildtool_depends> dependency on catkin, metapackages can only have execution dependencies on packages of which they group.
Additionally a metapackage has a required, boilerplate CMakeLists.txt file:
cmake_minimum_required(VERSION 2.8.3)
project(<PACKAGE_NAME>)
find_package(catkin REQUIRED)
catkin_metapackage()
Note: replace <PACKAGE_NAME> with the name of the metapackage.
2.5 其他标签
<url>- 包上信息的 URL,通常是ros.org。<作者>- 包的作者
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)