【问题标题】:What is the difference between do_compile[noexec] and empty function in bitbake recipe?bitbake 配方中的 do_compile[noexec] 和空函数有什么区别?
【发布时间】:2015-08-14 06:28:18
【问题描述】:

如果我想禁用特定的构建步骤,我可以使用以下任何一种:

do_configure[noexec] = "1"

do_configure() {
}

这些替代方案有什么区别?我听说在使用noexec 时会有加注条件。

【问题讨论】:

    标签: yocto bitbake


    【解决方案1】:

    嗯,通常有 3 种删除任务的方法:

    1. deltask 这完全删除了任务及其依赖项。因此,可能依赖于已删除任务的任务不会自动依赖已删除任务的依赖项。 (A->B->C,删除 B 不会创建 A->C)。因此,只有在您知道自己在做什么的情况下才应该使用它。
    2. 将任务设置为空do_task() { : }。这是禁用任务的旧方法。该任务仍将被执行,但其中没有任何作用。因此,执行开销将保持不变。
    3. do_task[noexec],禁用任务的新方法。与 2. 非常相似,但不会保留执行开销(因为任务根本不会执行)。

    【讨论】:

    • 使用 noexec 时,依赖任务会发生什么? A->B,当 B 设置为 noexec 时,A 会发生什么?
    • 在依赖任务方面,2 和 3 之间应该没有任何区别。因此,它们仍然会被执行,并且应该保留完整的依赖链。
    猜你喜欢
    • 2021-04-20
    • 1970-01-01
    • 2010-09-14
    • 2014-07-30
    • 2012-01-06
    • 2023-03-18
    • 2013-07-23
    • 1970-01-01
    相关资源
    最近更新 更多