实践与wiki教程对比学习ROS(catkin/package.xml)

【wiki版本】

1.概述

软件包清单是一个XML文件名为package.xml中必须包括与任何兼容柳絮包的根文件夹。此文件定义包的属性,例如包名称,版本号,作者,维护者和对其他catkin包的依赖性。

2.格式

2.1 【基本结构】每个package.xml文件都有<package>标记作为根标记文件。
<package format =“2”>

</ package>

2.2 【必须的标签】有一个最小的标签集需要嵌套在<package>标签中以使包清单完整。

  • <name> - 包的名称

  • <version> - 软件包的版本号(需要3个点分隔的整数)

  • <description> - 包内容的描述

  • <maintainer> - 维护包裹的人员的姓名

  • <license> - 发布代码的软件许可证(例如GPL,BSD,ASL)。

<package format =“2”>
  <name> foo_core </ name>
  <version> 1.2.4 </ version>
  <description>
  此包提供foo功能。
  </ description>
  <maintainer email =“ivana@osrf.org”> Ivana Bildbotz </ maintainer>
  <license> BSD </ license>
</ package>

2.3【依赖】具有最小标记的包清单不指定对其他包的任何依赖性。软件包可以有六种类型的依赖:

  • 构建依赖关系指定构建此包所需的包。这是在构建时需要这些包中的任何文件的情况。这可以在编译时包括来自这些包的头,从这些包链接到库,或者在构建时需要任何其他资源(特别是当这些包在CMake 中是find_package()时)。在交叉编译场景中,构建依赖关系是针对目标体系结构的。

  • 构建导出依赖关系指定需要哪些包来针对此包构建库。这是这种情况下,当你在头文件包中的公共头包含他们的头文件(特别是当这些包声明为(CATKIN_)DEPENDS在catkin_package()在CMake)。

  • 执行依赖关系指定在此软件包中运行代码所需的软件包。这是依赖于此包中的共享库(特别是当这些包在CMake 中的catkin_package()声明为(CATKIN_)DEPENDS时)。

  • 测试依赖关系仅指定单元测试的附加依赖关系。它们不应该复制已经提到的构建或运行依赖项的任何依赖项。

  • 构建工具依赖关系指定构建系统工具,这个包需要构建自己。通常,唯一需要的构建工具是catkin。在交叉编译场景中,构建工具依赖性是针对执行编译的体系结构。

  • 文档工具依赖性指定此程序包生成文档所需的文档工具。

这六种类型的依赖关系使用以下各自的标签指定:

  • < depends >指定依赖关系是构建,导出和执行依赖关系。这是最常用的依赖标签。

  • <buildtool_depend>

  • <build_depend>

  • <build_export_depend>

  • <exec_depend>

  • <test_depend>

  • <doc_depend>

所有包都至少有一个依赖,一个构建工具依赖catkin如下例所示。

<package>
  <name> foo_core </ name>
  <version> 1.2.4 </ version>
  <description>
    此包提供foo功能。
  </ description>
  <maintainer email =“ivana@osrf.org”> Ivana Bildbotz </ maintainer>
  <license> BSD </ license>

  <buildtool_depend> catkin </ buildtool_depend>
</ package>
指定build,exec,test和doc依赖项的更现实的示例可以如下所示。
<package>
  <name> foo_core </ name>
  <version> 1.2.4 </ version>
  <description>
    此包提供foo功能。
  </ 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>

  <depends> roscpp </ depend>
  <depends> 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【metapackage】将多个包作为单个逻辑包进行分组通常很方便。这可以通过 元包实现 metapackage是一个在package.xml中具有以下导出标记的普通软件包:
 <export>
   <metapackage />
 </ export>
除了必需的 <buildtool_depends> 的依赖 柳絮 ,元数据包只能对包运行依赖其中,他们组。 另外,元包还有一个必需的,样板CMakeLists.txt文件:
cmake_minimum_required(VERSION 2.8.3)
项目(<PACKAGE_NAME>)
find_package(catkin REQUIRED)
catkin_metapackage()
注意:将 <PACKAGE_NAME> 替换为元素包的名称。
2.5【其他标签】
  • <url> - 关于软件包的信息的URL,通常是ros.org上的wiki页面。

  • <author> - 包的作者


【实践版本】


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值