【发布时间】:2021-08-09 20:25:54
【问题描述】:
我想知道 bitbake 如何在构建过程中搜索配方? 例如, 我有一个类似下面的食谱:
DESCRIPTION = "PetaLinux GSTREAMER supported packages"
inherit packagegroup
GSTREAMER_PACKAGES = " \
gstreamer1.0 \
gstreamer1.0-python \
gstreamer1.0-meta-base \
gstreamer1.0-plugins-base \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad \
gstreamer1.0-rtsp-server \
gst-shark \
gstd \
gst-perf \
gst-interpipes \
"
GSTREAMER_PACKAGES_append_zynqmp = " gstreamer1.0-omx"
RDEPENDS_${PN} = "${GSTREAMER_PACKAGES}"
当我在 yocto 层中搜索 gstreamer1.0 相关配方时,我发现了两个配方,其中一个是 meta 中的 gstreamer1.0_1.16.1.bb 层,另一个是meta-petalinux层中的gstreamer1.0_%.bbappend。
这两个层都被添加到 bblayers.conf 文件中的 BBLAYERS 和相关层的层中用 BBFILE_PRIORITY_* 指定的优先级.conf 文件是一样的。
所以, 在这种情况下,构建过程将使用哪个配方? yocto中的recipe查找规则是什么?
我改变了一些东西来理解这种行为: 例如,
- 我输入了在 gstreamer1.0_%.bbappend 配方中指定的无效 github URL。当我尝试构建linux系统时,我遇到了一个错误。没关系。
- 然后我更正了此配方中的 github URL,并输入了 gstreamer1.0_1.16.1.bb 配方中指定的无效源代码地址。当我尝试构建linux系统时,过程成功完成。
- 然后我增加了meta层的优先级。在这种情况下,我应该会遇到错误,但构建过程再次成功完成。
您能帮我理解这种行为吗?
谢谢。
【问题讨论】: