gpt4 book ai didi

compilation - 构建依赖和运行时依赖有什么区别

转载 作者:行者123 更新时间:2023-12-03 23:54:21 25 4
gpt4 key购买 nike

我被告知构建依赖和运行时依赖是不同的。但我不知道为什么。如果在构建时需要一些依赖,我们不能也说它是运行所必需的吗?如果运行时需要一些依赖,我们不能也说它是构建所必需的吗?

我正在学习 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>

这是因为当你 build 你想要 message_generation用于为您的消息定义创建头文件,但是一旦它们存在,您就不需要对 的依赖生成 运行时的新消息——它只发生在构建过程中。

同样, message_runtime处理消息定义的运行时绑定(bind),这与构建过程本身无关。

这些不同的依赖项标签使您可以更好地控制管理依赖项。有一个包罗万象的标签 <depend></depend>如果您的所有依赖项都是构建和运行时依赖项,那么它不会区分这些差异并且可以使您的 package.xml 更短。

This page概述了 package.xml 标记和相关的 CMakeLists.txt 信息。

关于compilation - 构建依赖和运行时依赖有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51433878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com