其他分享
首页 > 其他分享> > ROS-Note :package.xml 构成

ROS-Note :package.xml 构成

作者:互联网

package.xml 构成:
1 描述标签

	<description>The beginner_tutorials package</description>

用于描述 package

2 维护者标签

 	<!-- One maintainer tag required, multiple allowed, one person per tag --> 
	<!-- Example:  -->
	<!-- <maintainer email="jane.doe@example.com">Jane Doe</maintainer> -->
	<maintainer email="user@todo.todo">user</maintainer>

提供一个或者多个维护者信息

3 许可证标签

	<!-- One license tag required, multiple allowed, one license per tag -->
	<!-- Commonly used license strings: -->
	<!--   BSD, MIT, Boost Software License, GPLv2, GPLv3, LGPLv2.1, LGPLv3 -->
	<license>TODO</license>

填写package的许可证 BSD MIT…

4 依赖项标签

	<!-- The *_depend tags are used to specify dependencies -->
	<!-- Dependencies can be catkin packages or system dependencies -->
	<!-- Examples: -->
	<!-- Use build_depend for packages you need at compile time: -->
	<!--   <build_depend>genmsg</build_depend> -->
	<!-- Use buildtool_depend for build tool packages: -->
	<!--   <buildtool_depend>catkin</buildtool_depend> -->
	<!-- Use exec_depend for packages you need at runtime: -->
	<!--   <exec_depend>python-yaml</exec_depend> -->
	<!-- Use test_depend for packages you need only for testing: -->
	<!--   <test_depend>gtest</test_depend> -->
	<buildtool_depend>catkin</buildtool_depend>
	<build_depend>roscpp</build_depend>
	<build_depend>rospy</build_depend>
	<build_depend>std_msgs</build_depend>

这些依赖项分为
buildtool_depend:指定,这个package需要自行构建的构建系统工具。通常来讲,只需要catkin。在交叉编译场景中,构建工具依赖项是用于执行编译的架构。
build_depend:指定,需要哪些packages来构建这个package。只要在构建时需要这些package中的任何文件,那就一定要包含这些packages。可以在编译时在include中包含来自这些package的头文件,link链接来自这些package的库或构建时需要的任何其他资源(尤其是当这些package在 CMake 中使用了 find_package() 时)。在交叉编译场景中,构建依赖项是针对目标架构的。
run_depend:指定,运行此package中的代码或针对此package构建库需要哪些package。当您依赖于这些共享库,或在此package的公共标头中传递性地包含其他packages的标头时(尤其是当这些包在 CMake 中的 catkin_package() 中声明为 (CATKIN_)DEPENDS 时)时,就要加入这些packages。
test_depend:仅指定在单元测试中附加的依赖项。不应该重复添加已作为构建或运行依赖项的package

除了catkin中默认提供的buildtool_depend,所有列出的依赖包都已经被添加到build_depend标签中。在本例中,因为在编译和运行时都需要用到所有指定的依赖包,因此还要将每一个依赖包分别添加到run_depend标签中:

  	<buildtool_depend>catkin</buildtool_depend>

  	<build_depend>roscpp</build_depend>
  	<build_depend>rospy</build_depend>
  	<build_depend>std_msgs</build_depend>

  	<exec_depend>roscpp</exec_depend>
  	<exec_depend>rospy</exec_depend>
  	<exec_depend>std_msgs</exec_depend>

5 最后的package.xml

<?xml version="1.0"?>
<package format="2">
  <name>beginner_tutorials</name>
  <version>0.1.0</version>
  <description>The beginner_tutorials package</description>

  <maintainer email="you@yourdomain.tld">Your Name</maintainer>
  <license>BSD</license>
  <url type="website">http://wiki.ros.org/beginner_tutorials</url>
  <author email="you@yourdomain.tld">Jane Doe</author>

  <buildtool_depend>catkin</buildtool_depend>

  <build_depend>roscpp</build_depend>
  <build_depend>rospy</build_depend>
  <build_depend>std_msgs</build_depend>

  <exec_depend>roscpp</exec_depend>
  <exec_depend>rospy</exec_depend>
  <exec_depend>std_msgs</exec_depend>

</package>

其中还有一些其他标签
< name > :package的文件名
< version > :版本号
< url type=“website” > :网址信息

标签:xml,依赖,catkin,package,标签,Note,构建,depend,ROS
来源: https://blog.csdn.net/qq_39020664/article/details/119329594