zoukankan      html  css  js  c++  java
  • package.xml

    package.xml 也是一个catkinpackage必备文件, 它是这个软件包的描述文件, 在较早的
    ROS版本(rosbuild编译系统)中, 这个文件叫做 manifest.xml , 用于描述pacakge的基本信
    息。 如果你在网上看到一些ROS项目里包含着 manifest.xml , 那么它多半是hydro版本之前
    的项目了。

    1、package.xml作用

    pacakge.xml 包含了package的名称、 版本号、 内容描述、 维护人员、 软件许可、 编译构建工
    具、 编译依赖、 运行依赖等信息。
    实际上 rospack find rosdep 等命令之所以能快速定位和分析出package的依赖项信息, 就
    是直接读取了每一个pacakge中的 package.xml 文件。 它为用户提供了快速了解一个pacakge
    的渠道。

    2、package.xml写法

    pacakge.xml 遵循xml标签文本的写法, 由于版本更迭原因, 现在有两种格式并存( format1
    format2) , 不过区别不大。 老版本( format1) 的 pacakge.xml 通常包含以下标签:

    <pacakge> 根标记文件
    <name> 包名
    <version> 版本号
    <description> 内容描述
    <maintainer> 维护者
    <license> 软件许可证
    <buildtool_depend> 编译构建工具, 通常为catkin
    <build_depend> 编译依赖项, 与Catkin中的
    <run_depend> 运行依赖项

    说明: 其中1-6为必备标签, 1是根标签, 嵌套了其余的所有标签, 2-6为包的各种属性, 7-9
    编译相关信息。
    在新版本( format2) 中, 包含的标签为:

    <pacakge> 根标记文件
    <name> 包名
    <version> 版本号
    <description> 内容描述
    <maintainer> 维护者
    <license> 软件许可证
    <buildtool_depend> 编译构建工具, 通常为catkin
    <depend> 指定依赖项为编译、 导出、 运行需要的依赖, 最常用
    <build_depend> 编译依赖项
    <build_export_depend> 导出依赖项
    <exec_depend> 运行依赖项
    <test_depend> 测试用例依赖项
    <doc_depend> 文档依赖项

    举例:以turtlesim软件包为例, 其 pacakge.xml 文件内容如下:

    <?xml version="1.0"?> <!--本示例为老版本的pacakge.xml-->
    <package> <!--pacakge为根标签, 写在最外面-->
    <name>turtlesim</name>
    <version>0.8.1</version>
    <description>
    turtlesim is a tool made for teaching ROS and ROS packages.
    </description>
    <maintainer email="dthomas@osrfoundation.org">Dirk Thomas</maintainer>
    <license>BSD</license>
    <url type="website">http://www.ros.org/wiki/turtlesim</url>
    <url type="bugtracker">https://github.com/ros/ros_tutorials/issues</url>
    <url type="repository">https://github.com/ros/ros_tutorials</url>
    <author>Josh Faust</author>
    <!--编译工具为catkin-->
    <buildtool_depend>catkin</buildtool_depend>
    <!--编译时需要依赖以下包-->
    <build_depend>geometry_msgs</build_depend>
    <build_depend>qtbase5-dev</build_depend>
    <build_depend>message_generation</build_depend>
    <build_depend>qt5-qmake</build_depend>
    <build_depend>rosconsole</build_depend>
    <build_depend>roscpp</build_depend>
    <build_depend>roscpp_serialization</build_depend>
    <build_depend>roslib</build_depend>
    <build_depend>rostime</build_depend>
    <build_depend>std_msgs</build_depend>
    <build_depend>std_srvs</build_depend>
    <!--运行时需要依赖以下包-->
    <run_depend>geometry_msgs</run_depend>
    <run_depend>libqt5-core</run_depend>
    <run_depend>libqt5-gui</run_depend>
    <run_depend>message_runtime</run_depend>
    <run_depend>rosconsole</run_depend>
    <run_depend>roscpp</run_depend>
    <run_depend>roscpp_serialization</run_depend>
    <run_depend>roslib</run_depend>
    <run_depend>rostime</run_depend>
    <run_depend>std_msgs</run_depend>
    <run_depend>std_srvs</run_depend>
    </package>

    以上内容是老版本( format1) 的写法, 如果要写成新版本( format2) 则可以改为:

    <?xml version="1.0"?>
    <package format="2"> <!--在声明pacakge时指定format2, 为新版格式-->
    <name>turtlesim</name>
    <version>0.8.1</version>
    <description>
    turtlesim is a tool made for teaching ROS and ROS packages.
    </description>
    <maintainer email="dthomas@osrfoundation.org">Dirk Thomas</maintainer>
    <license>BSD</license>
    <url type="website">http://www.ros.org/wiki/turtlesim</url>
    <url type="bugtracker">https://github.com/ros/ros_tutorials/issues</url>
    <url type="repository">https://github.com/ros/ros_tutorials</url>
    <author>Josh Faust</author>
    <!--编译工具为catkin-->
    <buildtool_depend>catkin</buildtool_depend>
    <!--用depend来整合build_depend和run_depend-->
    <depend>geometry_msgs</depend>
    <depend>rosconsole</depend>
    <depend>roscpp</depend>
    <depend>roscpp_serialization</depend>
    <depend>roslib</depend>
    <depend>rostime</depend>
    <depend>std_msgs</depend>
    <depend>std_srvs</depend>
    <!--build_depend标签未变-->
    <build_depend>qtbase5-dev</build_depend>
    <build_depend>message_generation</build_depend>
    <build_depend>qt5-qmake</build_depend>
    <!--run_depend要改为exec_depend-->
    <exec_depend>libqt5-core</exec_depend>
    <exec_depend>libqt5-gui</exec_depend>
    <exec_depend>message_runtime</exec_depend>
    </package>

     

  • 相关阅读:
    由于媒体16摘要天
    vim note (2)
    JEECG 什么是商业版本的功能最近添加的好友?
    图解linux启动过程
    Error: unrecognized flag -version
    基于RDP瘦客户机协议的简要说明
    Android在网络上分析获取图片(支持bmp格式)
    [React] Validate Custom React Component Props with PropTypes
    [Python] Wikipedia Crawler
    [Python] Python list slice syntax fun
  • 原文地址:https://www.cnblogs.com/long5683/p/9941442.html
Copyright © 2011-2022 走看看