覆盖bbappend中的do_compile()功能

时间:2019-09-10 12:14:32

标签: yocto bitbake

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

有没有办法做到这一点?

我尝试了几件事:

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

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

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

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

正如@Nayfe所说,在您的do_compile()中定义.bbappend应该可以。

如果您的do_compile()函数未生效,则可能意味着以下几点:

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