【问题标题】:Yocto Project Boost library : Change default package version used in bitbake recipeYocto Project Boost 库:更改 bitbake 配方中使用的默认包版本
【发布时间】:2020-05-28 04:02:08
【问题描述】:

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

我正在使用 SUMO 分支(Yocto Project 2.5)。

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

IMAGE_INSTALL_append = " boost"

但我发现安装的默认版本是Boost 1.66.0

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

  • recipes-support/boost/boost_1.66.0.bb

  • recipes-support/boost/boost-1.66.0.inc

  • recipes-support/boost/boost.inc

我认为这些是这个库的秘诀。

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

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

谢谢!

【问题讨论】:

  • 用其他版本字符串重命名这些文件是快速但有点脏的。重新运行 bitbake,会失败,因为获取的文件的 md5sum 不同。但它会告诉你新的哈希值。刚刚将这些添加到文件中。请参阅 .inc 文件中的 SRC_URI[md5sum] 和 SRC_URI[sha256sum]。
  • @vermaete 所以我想我从你那里了解到,我必须将 boost-1.66.0.inc 文件中包含的 SRC_URI[md5sum]SRC_URI[sha256sum]SRC_URI 替换为新的 boost 版本的具体信息并重新-运行 bitbake ?
  • Yocto 的想法是在 layers 的帮助下构建自己的发行版。因此,您可以将某些东西作为基础,然后根据需要添加另一层。
  • @0andriy 我不知道如何构建我自己的层,我应该在这个新层目录中放置什么以及如何使其发挥作用,我希望我能对我的用你的方法提升问题。否则,我现在必须采取快速解决方案。
  • @vermaete 在替换了 md5sum 和 sha256sum 以及所需提升的来源后,我遇到了与补丁相关的错误

标签: boost embedded-linux yocto recipe


【解决方案1】:

看看openembedded layer index。在那里你会找到 boost 1.72 的配方。如果此配方不依赖于您系统的任何其他组件(如 gcc 版本),您将能够在 your own layer 中添加此配方。然后,在您的build/local.conf 中,在IMAGE_INSTALL_append = "<YOUR_OTHER_PGS> boost" 之后通过将PREFERED_VERSION_boost="1.72.0" 添加到文件并重新运行bitbake 来设置boost 的首选版本。

我希望这会有所帮助。

【讨论】:

  • 但我提到我需要使用boost 1.70.0版本而不是1.72.0
  • 如果您无法将应用程序的开发工具链升级到 1.72,那么您必须采用配方构建 1.70 版本。
  • 如何采用配方构建 1.70 版?
  • 如果构建过程在这些版本之间没有变化,您需要更改文件/文件夹名称中的版本并修复原始问题评论部分中 vermaete 提到的校验和.我可能还需要修补原始配方提供的补丁。如果您不走运,您还需要修改特定于您的平台的构建步骤。恐怕编写自己的食谱并不是那么简单。我的建议是将所有内容更新为现有的配方。
  • 你是对的,因为我已经将在引导目录中找到的文件的名称更改为所需的版本,并修复了校验和。我没有更改补丁,但是当我运行 bitbake 时,它​​给了我与补丁相关的错误。我不知道如何解决这些错误。此外,我找不到已经存在的 1.70 版本配方。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-05
  • 2021-12-31
  • 2020-02-13
  • 2015-12-05
  • 1970-01-01
相关资源
最近更新 更多