简体   繁体   English

bitbake:构建系统如何选择一层以上提供的配方

[英]bitbake: how does the build system choose the recipe provided by more than one layer

The meta layer provide recipe:元层提供配方:

meta/recipes-graphics/x11-common/xserver-nodm-init.bb 

The meta-oe layer provide recipe: meta-oe 层提供配方:

meta-oe/recipes-graphics/xserver-nodm-init/xserver-nodm-init_2.0.bb

My question is:我的问题是:

How the build system select the xserver-nodm-init from the multi-layers?构建系统如何从多层中选择xserver-nodm-init?

Does it select the xserver-nodm-init recipe according to the layers order in conf/bblayers?它是否根据 conf/bblayers 中的层顺序选择 xserver-nodm-init 配方?

Layer priority ( BBFILE_PRIORITY ) and recipe version number ( PV , often automated from filename) will decide which recipe is used.层优先级( BBFILE_PRIORITY )和配方版本号( PV ,通常从文件名自动)将决定使用哪个配方。 The recipe in higher priority layer will be used even if the recipe version in that layer is lower, so the version numbers should only matter if the layer priorities are the same.即使该层中的配方版本较低,也将使用较高优先级层中的配方,因此版本号仅在层优先级相同时才重要。

In your case the recipe in meta/ has no explicit version number: PV defaults to 1.0.在您的情况下,meta/ 中的配方没有明确的版本号:PV 默认为 1.0。

You can use bitbake-layers show-layers to see the priorities of all your layers, and eg bitbake -e <recipe> | grep ^PV您可以使用bitbake-layers show-layers来查看所有图层的优先级,例如bitbake -e <recipe> | grep ^PV bitbake -e <recipe> | grep ^PV to check which version actually got selected for the recipe. bitbake -e <recipe> | grep ^PV检查实际为配方选择了哪个版本。 To override a "wrong" selection of a specific recipe you can use PREFERRED_VERSION_<recipe> = <version> in your distro or local configuration.要覆盖特定配方的“错误”选择,您可以在发行版或本地配置中使用PREFERRED_VERSION_<recipe> = <version>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM