gpt4 book ai didi

cmake - 为什么 add_custom_target 总是被认为是过时的?

转载 作者:行者123 更新时间:2023-12-04 01:58:47 24 4
gpt4 key购买 nike

根据the documentation , add_custom_target()创建一个“始终认为已过期”的目标。但是,文档 also saysadd_dependencies()可以在顶级目标之间添加依赖关系,包括由 add_custom_target() 添加的依赖关系.如果 add_custom_target()总是被执行,将它与 add_dependencies() 一起使用有什么实际目的吗? ?

最佳答案

就 CMake 而言, add_custom_target 不会产生任何它可以跟踪以确定目标是否过期的东西。

对比 add_custom_command ,您可以在其中指定 OUTPUT命令产生的。据 CMake 所知,自定义目标只是一个黑匣子,任何事情都可能发生。这就是使它们难以正确集成到构建中的原因。

请注意,默认情况下,完全跳过自定义目标,您只能显式构建它们(例如,通过调用 make <my_target_name> )。您可以通过指定 ALL 使它们成为默认构建目标的一部分。调用 add_custom_target 时的选项或者创建另一个目标,它已经是默认构建目标的一部分,取决于您的自定义目标。

您通常无法通过依赖其输出工件之一来添加此依赖项,因为就 CMake 而言,自定义目标不会产生任何内容。这就是为什么你必须使用更古老的 add_dependencies反而。

关于cmake - 为什么 add_custom_target 总是被认为是过时的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48758263/

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