我使用yocto与当前的kirkstone LTS版本(很长一段时间)。我尝试使用版本信息的食谱。
见:https://docs.yoctoproject.org/4.0.6/ref-manual/variables.html?highlight=preferred_version term-PV
我有一个这样的食谱:'my-recipe_1.0.0.bb'
现在我想在我的图像中安装这个版本的配方。所以我有另一个食谱,像"图像"。'IMAGE_INSTALL += "my-recipe"
现在我希望构建失败,如果配方版本不存在。我使用REQUIRED_VERSION,参见:https://docs.yoctoproject.org/4.0.6/ref-manual/variables.html?highlight=preferred_version#term-REQUIRED_VERSION
所以我添加了我的图像。写一行:'REQUIRED_VERSION_my-recipe="1.0.0"'
这个效果很好,我可以在不同版本的食谱之间切换。
现在问题来了:如果我需要一个不存在的配方版本,文档说我会得到一个错误和一个立即构建错误。但是,我的构建采用了一个现有的配方,而不是我需要的配方。
这会导致不可接受的情况,我的构建构建了一些我不期望的东西。现在我想知道,是否有人知道出了什么问题。
我尝试使用REQUIRED_VERSION不同的现有食谱。→
我试图使用REQUIRED_VERSION不存在的配方。→这并没有像预期的那样起作用。我没有得到编译错误。
由于手册声明REQUIRED_VERSION "与PREFERRED_VERSION"的工作方式完全相同;(除了抛出一个错误),也许可以尝试使用强制变量override:
REQUIRED_VERSION_my-recipe:forcevariable = "1.0.0"
编辑:在local.conf中包含这一行而不是图像。Bb文件的预期行为生效
嗯。如果您尝试在local.conf中包含这行而不是的形象。bb文件?——the ummox Jan 13 at 16:11
嗯,将它添加到local.conf中会引发预期的错误。它甚至打印可用的版本。
这很奇怪,因为local.conf根据定义不是我的图层的一方,但我可以使用它。