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

标签 boost alsa yocto bitbake

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

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

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

我很难将构建/安装的包 Material 放入图像本身的 rootfs 中。

我的 .bbappend 为 alsa 如下:

    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和字符串中的前导空格。

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

关于boost - 在 yocto build 中包含特定的头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32819567/

相关文章:

linux - 当字符串传递给内核设备驱动程序时,用户应用程序被终止

c++ - find_if 在 vector 上并比较成员变量

树莓派上的 Alsa 问题

yocto - 如何解决 "ERROR: ParseError in <recipe_name>: not a BitBake file"

linux - alsa 工具 arecord 无法识别 Arch Linux 上的plughw :1, 0

linux - 来自 ALSA 的记录——理解内存映射

opencv - Yocto如何添加一个gstreamer插件?

performance - C++ : Best text accumulator

具有包装随机访问的 C++ vector ?

c++ - Windows MSVS 2017 上的 boost::stacktrace