ROS源码分析--子话题-catkin

catkin简介

catkin是当前ROS的官方编译工具,每天都要接触到,因此有必要单独说说。
catkin编译基于CMake,源代码以package为单位组织,每个package必须包含package.xmlCMakeList.txt两个文件。

package.xml

catkin支持两种package.xml标签格式,格式1标准说明是REP-0127,格式2标准说明是REP-0140。后者是针对前者的一些缺点进行改进后的版本,因此更加被推荐使用。
在package.xml中主要包含以下信息:

  • 描述信息(比如package的功能描述、维护者等)
  • 依赖信息
  • 元信息(比如作者、网页)
  • package信息(比如版本)

每个package.xml文件必须包含的标签包括:

  • <package> : 最高级tag,属性:format,用于指定格式
    • <name> :package名称
    • <version> :当前版本
    • <description>:package的基本描述
    • <maintainer>(至少一个):维护者
    • <license>(至少一个):协议
    • <buildtool_depend>(至少一个):一般情况下只需要指定catkin作为编译工具,在需要交叉编译的情况下需要增加目标机器的编译工具。

可选标签包括:

  • <package>
    • <url> (多个):指定package的网址
    • <author> (多个):作者
    • <build_depend> (多个):编译时需要依赖的其它package,适用于静态库
    • <conflict> (多个):声明本package与其它ROS package有冲突,不能同时部署
    • <replace> (多个):声明本package是其它package的替换版本
    • <export>:用于添加额外的信息,比如需要嵌入的其它package的插件,或者一些说明信息。

插件:

<export>
  <rviz plugin="${prefix}/plugin_description.xml"/>
</export>

废弃信息:

<export>
  <deprecated>
    This package will be removed in ROS Hydro. Instead, use package
    FOO, which provides similar features with a different API.
  </deprecated>
</export>

meta package标记:

<export>
  <metapackage/>
</export>

以及在格式1和格式2有区别的标签:

格式1

  • <package>
    • <run_depend> (多个):运行时需要依赖的其它package,如动态链接库、可执行文件、Python模块、脚本文件等。
  • 9
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值