Yocto项目Boost库:更改bitbake配方中使用的默认包版本

Yocto项目Boost库:更改bitbake配方中使用的默认包版本,boost,embedded-linux,yocto,recipe,Boost,Embedded Linux,Yocto,Recipe,我正在使用Yocto项目开发一个Linux映像操作系统 我正在使用相扑分支(Yocto项目2.5) 为了在我的Linux映像中安装boost库,我将这一行添加到local.conf文件中: IMAGE_INSTALL_append = " boost" 但是我发现安装的默认版本是Boost 1.66.0 在meta/recipes support/boost目录下,我可以找到三个文件: 配方支持/boost/boost_1.66.0.bb 配方支持/boost/boost-1.66.0.in

我正在使用Yocto项目开发一个Linux映像操作系统

我正在使用相扑分支(Yocto项目2.5

为了在我的Linux映像中安装boost库,我将这一行添加到local.conf文件中:

IMAGE_INSTALL_append = " boost"
但是我发现安装的默认版本是Boost 1.66.0

在meta/recipes support/boost目录下,我可以找到三个文件:

  • 配方支持/boost/boost_1.66.0.bb

  • 配方支持/boost/boost-1.66.0.inc

  • 配方支持/boost/boost.inc

我想这些就是这个图书馆的食谱

我需要使用版本1.70.0,因为我有一个使用此版本编码的应用程序

我不知道如何修改这些配方以获得所需的版本,或者是否有其他方法可以使用?我在网上找不到任何有用的提示。你能帮我吗

谢谢大家!

看一看。在这里你可以找到boost 1.72的配方。如果此配方不依赖于系统的任何其他组件(如gcc版本),则可以在中添加此配方。然后,在
build/local.conf
中,在
IMAGE\u INSTALL\u append=“boost”
之后,通过向文件中添加
preferred\u version\u boost=“1.72.0”
来设置boost的首选版本,然后重新运行bitbake


我希望这会有所帮助。

用另一个版本字符串重命名这些文件是一种快速且有点脏的方法。重新运行bitbake,将失败,因为获取的ile的md5sum不同。但它会告诉你新的散列。刚刚将这些添加到文件中。请参阅.inc文件中的SRC_URI[md5sum]和SRC_URI[sha256sum]。@vermaete所以我想我从您那里了解到,我必须替换
SRC_URI[md5sum]
SRC_URI[sha256sum]
SRC_URI
包含在
boost-1.66.0.inc
文件中,包含新boost版本的具体信息,并重新运行bitbake?Yocto的理念是,您可以借助层构建自己的发行版。因此,您可以将某个层作为基础,然后根据需要添加另一层。@0andriy我不知道如何构建自己的层,我应该在这个新层目录中放置什么,以及如何使其发挥作用,我希望我能用您的方法回答我的boost问题。否则,我现在必须采取一个快速的解决方案。@vermaete在替换了md5sum和sha256sum以及所需的boost源代码之后,我有一些与补丁相关的错误,但我提到如果无法将应用程序的开发工具链升级到1.72,我需要使用
boost 1.70.0
版本,而不是
1.72.0
,然后,您必须采用配方来构建1.70版。我如何才能采用配方来构建1.70版?如果构建过程在两个版本之间没有变化,您需要更改文件/文件夹名称中的版本,并修复vermaete在原始问题的评论部分中提到的校验和。我可能还需要修补原始配方提供的补丁。如果运气不好,还需要修改特定于平台的构建步骤。恐怕写你自己的食谱并不是那么简单。我的建议是将所有内容更新为现有的配方。你是对的,因为我已经用所需的版本更改了启动目录中的文件名,并修复了校验和。我没有更改修补程序,但当我运行bitbake时,它会给我与修补程序相关的错误。我不知道如何修复这些错误。此外,我找不到已经存在的1.70版本配方。