Boost 在yocto构建中包括特定的头文件

Boost 在yocto构建中包括特定的头文件,boost,alsa,yocto,bitbake,Boost,Alsa,Yocto,Bitbake,我试图在开发包中找到的yocto构建中包含特定的头文件。这些软件包是boost和alsa 我已经将bitbake配方文件包含到我的image recipe中,它是一个核心配方(console trdx image.bb)的bbappend,作为一个映像\u INSTALL+=并对映像进行了bitbake 当我查看我的构建工作目录时,在alsa和boost的包中,所有文件都驻留在我希望它们位于的位置—例如,usr/include/alsa 我很难将构建/安装的包材料放入映像本身的rootfs中 我

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

我已经将bitbake配方文件包含到我的image recipe中,它是一个核心配方(console trdx image.bb)的bbappend,作为一个映像\u INSTALL+=并对映像进行了bitbake

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

我很难将构建/安装的包材料放入映像本身的rootfs中

我对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子目录中,可以找到alsa库的所有已安装头文件

但是,这些头文件通常不会安装到您的rootfs上,因为这是毫无意义的(大多数情况下)。如果你想直接在你的目标上开发alsa lib,你应该把所有的
alsa lib dev
都放到你的图像上。最好通过添加

IMAGE_INSTALL+=“alsa lib dev”
在您的图像配方中。您还可以添加

IMAGE\u INSTALL\u append=“alsa lib dev”
转到local.conf。注意
\u append
的用法以及字符串中的前导空格


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

据我所知,这些文件按照原始配方进行打包:默认情况下,头文件最终位于${PN}-dev包中。您确定新安装的头文件不在-dev包中吗?当我在构建区域中查找alsa(alsa lib/1.0.27.2-r0)时,它们似乎位于多个位置,但从未放入映像rootfs中。当我查看包split/alsa-lib-dev/usr/include时,我只得到一个目录'sys',但如果我查看alsa-lib/1.0.27.2-r0/package/I,我会得到预期的usr/include目录。在alsa lib/1.0.27.2-r0下的图像目录中,我还获得了我期望的目录,即include、bin、lib等。。。。但由于某些原因,这并没有在最终的镜像rootfs上结束。感谢Anders,它帮助我达到了我需要的程度,但我最终用image_INSTALL+=“alsa dev”修复了它,因为alsa lib dev包有大量我不需要的辅助文件,而且似乎没有我需要的alsa文件(!)