ros的catkin软件包构成

catkin软件包的构成:

1、packet.xml

该文件定义包的属性,如包名、版本号、作者、维护人员和其他catkin包的依赖关系。

它的根标签是(这里的2意为最新的格式版本):

<package format='2'>

</package>

其他标签有:

  • <name> - 包名

  • <version> -包的版本(需要是三个点分隔的整数)

  • <description> - 包内容描述

  • <maintainer> - 维护这个包的人(们)

  • <license> - 软件许可证(s)(例如,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>

然而上述标签并不会指定对其他包的任何依赖性,包可以有六种类型的依赖项:

先来一波知识普及,以C语言为例:

用C语言从编写源码,到运行一个程序的过程,可以概括为:
编写源代码(edit)-> 编译(compile)-> 连接,也叫生成(build)-> 运行(execute)。
build:在汇编里称link,在C里叫build,它的作用是生成可执行的exe文件。由于一个程序的源码可由多个文件组成。这些文件在第二步中分别编译,生成各自的目标
文件(*.obj),这一步的作用便是将这些obj文件,以及程序中需要的其它库文件(dll除开),统一到一个文件中来,形成单个的exe文件。此exe文件便可以在操作系
下直接运行了。
excute:运行,不同的情况下意义也不同。
Build Dependencies指定生成这个包需要哪些软件包。这些软件包中的任何文件都在bulid过程中被需要。它可以包含在编译时需要的来自这些包的头文件、来自这些包的链接库,或者在构建时需要任何其他资源(特别是当这些包在CMake中找到包()时)。在交叉编译场景中,构建依赖关系是针对目标架构的。

Build Export Dependencies指定需要哪些软件包来构建针对这个包的库。

Execution Dependencies规定了在这个包中运行代码需要哪些包。

Build Tool Dependencies指定构建系统工具,这个工具包需要构建它自己。通常,唯一需要的构建工具是catkin。在交叉编译场景中,构建工具依赖于编译所执行的体系结构。

Test Dependencies只指定单元测试的附加依赖项。它们不应该复制已经提到的构建或运行依赖项)

umentation Tool Dependencies指定文档工具,这个包需要生成文档。

六种依赖分别使用下述标签:

  • <depend>  指定这个依赖是build, export, and execution都需要的依赖,是最常用的。

  • <buildtool_depend>

  • <build_depend>

  • <build_export_depend>

  • <exec_depend>

  • <test_depend>

  • <doc_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>
一个更现实的例子,它指定了构建、执行、测试和doc依赖关系。
<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>

(先到这里,未完)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值