ROS学习(五):package.xml 文件

package.xml 文件
和 manifest 文件类似,描述功能包的属性,包括功能包的名字、版本号、作者、维护者、通行证 以及所以来的功能包。

http://wiki.ros.org/catkin/package.xml

1、基本结构

<package>

package>

2、标签

 - 功能包的名字
 -功能包的版本
 - 功能包内容的描述
 - 功能包的创建于维护者
 - 软件发行版通行证 (例如: GPL, BSD, ASL)

例子:

<package>
  <name>foo_corename>
  <version>1.2.4version>
  <description>
  This package provides foo capability.
  description>
  <maintainer email="[email protected]">Ivana Bildbotzmaintainer>
  <license>BSDlicense>
package>

3、依赖

一共有四种依赖包

<buildtool_depend> - 指定编译此功能包的编译系统工具

<build_depend> - 指定编译此功能包需要的其他功能包,可以是功能包中的头文件、链接库、其他源文件。 

<run_depend> - 指定运行此功能包代码需要的其他功能包。

<test_depend> - 指定单元测试需要的其他功能包

在混合交叉编译中,上述依赖包主要取决于混合编译系统。

最简单例子:

<package>
  <name>foo_corename>
  <version>1.2.4version>
  <description>
    This package provides foo capability.
  description>
  <maintainer email="[email protected]">Ivana Bildbotzmaintainer>
  <license>BSDlicense>

  <buildtool_depend>catkinbuildtool_depend>
package>

详细例子:

<package>
  <name>foo_corename>
  <version>1.2.4version>
  <description>
    This package provides foo capability.
  description>
  <maintainer email="[email protected]">Ivana Bildbotzmaintainer>
  <license>BSDlicense>

  <url>http://ros.org/wiki/foo_coreurl>
  <author>Ivana Bildbotzauthor>

  <buildtool_depend>catkinbuildtool_depend>

  <build_depend>message_generationbuild_depend>
  <build_depend>roscppbuild_depend>
  <build_depend>std_msgsbuild_depend>

  <run_depend>message_runtimerun_depend>
  <run_depend>roscpprun_depend>
  <run_depend>rospyrun_depend>
  <run_depend>std_msgsrun_depend>

  <test_depend>python-mocktest_depend>
package>

4、Metapackages

当一个功能包中包含好几个子功能包时使用。

在 package.xml中有如下代码:

 <export>
   <metapackage />
 export>

那么,对应的CMakelist.txt 内容如下:

cmake_minimum_required(VERSION 2.8.3)
project(<PACKAGE_NAME>)
find_package(catkin REQUIRED)
catkin_metapackage()

5、其他标签

- 功能包信息的链接, 一般为 ros.org 上的百科
- 功能包的作者信息,包括邮箱、名字等

你可能感兴趣的:(ROS)