1

我有一个带有 do_compile 函数的 bb 文件,我想在不修改 bb 文件的情况下覆盖/替换它。我想完全改变 do_compile 的内容,并将其“新”执行内容放在 bbappend 文件中。

有没有办法做到这一点?

我尝试了几件事:

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

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

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

任何帮助,将不胜感激

4

1 回答 1

3

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

如果你的do_compile()函数没有生效,这可能意味着几件事:

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