覆盖 bbappend 中的 do_compile() 功能

Overriding do_compile() functionality in bbappend

我有一个带有 do_compile 函数的 bb 文件,我想在不修改 bb 文件的情况下 override/replace。我想完全改变 do_compile 的内容,并将它的 'new' 执行内容放在一个 bbappend 文件中。

有办法吗?

我尝试了几件事:

  1. 在 bbappend 文件中我创建了一个函数 do_compile(),这不会替换原来的也不会被执行

  2. 在bbappend文件中我创建了一个函数do_compile_append(),这似乎根本就没有执行过

  3. 在bbappend文件中我创建了一个函数do_install_prepend(),它被执行了。然而,这并不理想,因为原来的 do_compile 也被执行了。

如有任何帮助,我们将不胜感激

正如@Nayfe 评论的那样,在 .bbappend 中定义 do_compile() 应该可行。

如果您的 do_compile() 功能没有生效,这可能意味着以下几点:

  1. 这可能意味着另一个图层优先于您的图层。检查图层的 BBFILE_PRIORITY 变量。一个提示是 运行 bitbake-layers show-overlayed 并检查你的覆盖食谱。
  2. 在某些情况下,.bb 文件可能会使用 noexec 指令完全禁用任务。例如 do_compile[noexec] = "1" 完全禁用编译。这主要用于安装脚本或配置文件的食谱。
  3. 您的图层未在 bblayers.conf 中定义。