Yocto do_compile[noexec]与bitbake配方中的空函数有什么区别?

Yocto do_compile[noexec]与bitbake配方中的空函数有什么区别?,yocto,bitbake,Yocto,Bitbake,如果我想禁用特定的构建步骤,我可以使用以下任一方法: do_configure[noexec] = "1" 或 这些备选方案之间有什么区别?我听说在使用noexec时可能会出现raise条件。通常有3种方法可以删除任务: deltask这将完全删除任务及其依赖项。因此,可能依赖于已删除任务的任务不会自动依赖于已删除任务的依赖关系。(A->B->C,删除B不会创建A->C)。因此,只有当您知道自己在做什么时,才应该使用此选项 将任务设置为空do_task(){:}。这是禁用任务的旧方法。任务仍将

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

do_configure[noexec] = "1"


这些备选方案之间有什么区别?我听说在使用noexec时可能会出现raise条件。通常有3种方法可以删除任务:

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

  • 当使用noexec时,依赖任务会发生什么情况?A->B,当B设置为noexec时,A会发生什么?当涉及到依赖任务时,2和3之间应该没有任何区别。因此,它们将被执行,并且完整的依赖链应该被保留。
    do_configure() {
    }