Yve*_*ves 6 dependencies runtime compilation ros
有人告诉我构建依赖项和运行时依赖项是不同的。但我不知道为什么。如果构建时需要某些依赖项,那么我们不能说运行时也需要它吗?如果某些依赖在运行时是必需的,那么我们不能说它对于构建也是必需的吗?
我正在学习 ROS 并阅读此链接:http ://wiki.ros.org/catkin/package.xml
我发现有<build_depend>和<exec_depend>,这让我感到惊讶,因为我一直认为 build-depend 和 exec-depend 总是相同的......
对于许多(我想说大多数)包来说,如果它是依赖项,那么它既是构建依赖项又是运行时依赖项。然而,这并非总是如此。一个值得注意的示例是,当您在包中创建新消息时,您将其message_generation作为构建依赖项并message_runtime作为执行依赖项包含在 package.xml 中:
<build_depend>message_generation</build_depend>
<exec_depend>message_runtime</exec_depend>
Run Code Online (Sandbox Code Playgroud)
这是因为当您构建时,您需要message_generation为消息定义创建头文件,但是一旦它们存在,您就不需要依赖项在运行时生成新消息 - 它只在构建过程中发生。
同样,message_runtime处理消息定义的运行时绑定,这与构建过程本身无关。
这些不同的依赖项标签使您可以更好地控制依赖项的管理。有一个包罗万象的标记<depend></depend>,它不区分这些差异,并且如果您的所有依赖项都是构建依赖项和运行时依赖项,则可以使您的 package.xml 更短。
此页面概述了 package.xml 标签和相关 CMakeLists.txt 信息。
| 归档时间: |
|
| 查看次数: |
3408 次 |
| 最近记录: |