将 Boost 配方添加到 Yocto SDK

Adding Boost recipe to Yocto SDK

我的目标是拥有一个包含 boost 库的 Yocto SDK。 Boost 提供的一些库只是头文件,但许多其他库需要针对我的目标体系结构进行编译。 我对 Yocto 很陌生,所以我遇到了一些困难。 我在 bblayers.conf 中为我的网络服务器定义一个新层并在 local.conf 中为 apache 和 php 附加包没有问题。 我很幸运这些包已经包含在 yocto krogoth 中了。

安装正常版本中不存在(或未获取)的新数据包时会出现问题,因为它适用于 boost 库。 我在 openembedded 上找到了 this 资源,它解释了 boost 属于 openembedded-core 层,并给出了要添加到该层的配方:

require boost-${PV}.inc
require boost.inc

SRC_URI += "\
    file://arm-intrinsics.patch \
    file://boost-CVE-2012-2677.patch \
    file://0001-boost-asio-detail-socket_types.hpp-fix-poll.h-includ.patch \
    file://boost-math-disable-pch-for-gcc.patch \
    file://0001-Apply-boost-1.62.0-no-forced-flags.patch.patch \
    file://0003-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch \
    file://0002-Don-t-set-up-m32-m64-we-do-that-ourselves.patch \
    file://0001-correct-error-which-appeared-when-compiling-non-c-co.patch \
"

我不太确定如何使用它。 我应该下载 boost 库并将其解压缩到某个目录中吗? 我应该保留 tarball 吗?

正在阅读一些文档,此文件需要一些 "file" 资源,所以在我的本地磁盘上找到了一些东西。 另外,我应该把 bb 食谱放在哪里?有默认文件夹吗? 从我读到的内容来看,这并不重要,但保持层与层、食谱与食谱等的良好做法。

然后我可能应该重建图像并最终执行: bitbake -c populate_sdk

你能帮我吗?

yocto 的默认 meta 层提供 recipes-support 下的 boost 版本 1.63。只要这一层在 bblayers.conf 中列出,您就应该能够构建 boost 1.63 而无需额外的工作。

如果需要更新的版本,您可以创建您选择的 boost-{version}.inc 并将 SRC_URI 设置为您想要的下载。尽管 1.63 应该足以满足大多数用途。