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

【wiki版本】

1.概述

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

2.格式

2.1 【基本结构】每个package.xml文件都有标记作为根标记文件。


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

  •  - 包的名称

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

  •  - 包内容的描述

  •  - 维护包裹的人员的姓名

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


   foo_core 
   1.2.4 
  
  此包提供foo功能。
  
   Ivana Bildbotz 
   BSD 

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

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

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

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

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

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

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

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

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

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


   foo_core 
   1.2.4 
  
    此包提供foo功能。
  
   Ivana Bildbotz 
   BSD 

   catkin 
指定build,exec,test和doc依赖项的更现实的示例可以如下所示。

   foo_core 
   1.2.4 
  
    此包提供foo功能。
  
   Ivana Bildbotz 
   BSD 

   http://ros.org/wiki/foo_core 
   Ivana Bildbotz 

   catkin 

   roscpp 
   std_msgs 

   message_generation 

   message_runtime 
   rospy 

   python-mock 

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

  •  - 包的作者


【实践版本】实践与wiki教程对比学习ROS(catkin/package.xml)_第1张图片


你可能感兴趣的:(ROS学习)