在 yocto build 中包含特定的头文件

Including specific header files in yocto build

我正在尝试在开发包中找到的 yocto 构建中包含特定的头文件。这些软件包是 boost 和 alsa。

我已将 bitbake 配方文件包含到我的图像配方中,它是核心配方 (console-trdx-image.bb) 的 bbappend 作为 IMAGE_INSTALL += 并对图像进行 bitbaked。

当我查看我的构建工作目录时,在 alsa 和 boost 的包中,所有文件都驻留在我希望它们所在的位置 - 例如 usr/include/alsa。

我很难将 built/installed 包 material 放入图像本身的根文件系统中。

我的 alsa .bbappend 如下:

    do_install_append() {

    # Create alsa dirs
    install -d ${D}/${includedir}/alsa
    install -d ${D}/${includedir}/alsa/sound
    # Install headers
    install -m 0755 ${S}/include/*.h ${D}/${includedir}/alsa
    install -m 0755 ${S}/include/sound/*.h ${D}/${includedir}/alsa/sound

}

# Include these files in the install on the target
FILES_${PN} += "${includedir}/alsa/*.h"

当我查看创建映像的 rootfs 中的 /usr/include 时,那里什么也没有。不是香肠。

有人知道为什么吗?

谢谢!

首先,不需要我们的bbappend,只是为了打包头文件。

如果您 bitbake alsa-lib,您将获得(除其他外): $ ls tmp-glibc/work/i586-oe-linux/alsa-lib/1.0.29-r0/packages-split/alsa-lib-dev/usr/include/ alsa sys 在子目录 alsa 中,您将找到 alsa 库的所有已安装头文件。

但是,这些头文件通常不会安装到您的 rootfs 上,因为那是毫无意义的(大多数情况下)。如果您希望能够直接在您的目标上针对 alsa-lib 进行开发,您应该对您的映像全部 alsa-lib-dev。最好通过添加 IMAGE_INSTALL += "alsa-lib-dev" 在你的图像配方中。您还可以添加 IMAGE_INSTALL_append = " alsa-lib-dev" 至 local.conf。请注意字符串中 _append 和前导 space 的使用。

执行其中任一操作会将所有头文件添加到您的 rootfs。