2015-09-28 272 views
4

我正試圖在dev包中找到的yocto版本中包含特定的頭文件。這些軟件包是boost和alsa。在yocto中包含特定的頭文件build

我已將bitbake配方文件包含到我的圖像配方中,該配方是核心配方(console-trdx-image.bb)的bbappend,並作爲IMAGE_INSTALL + =並對圖像進行了bitbaked。

當我查看我的構建工作目錄中的alsa和boost包時,所有文件都駐留在我想要的位置 - usr/include/alsa爲例。

我很難將構建/安裝的包材料放入圖像本身的rootfs中。

我對於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" 

當我看到在/ usr/include目錄中創建的映像的根文件系統有沒有什麼存在。不是香腸。

任何人有任何想法爲什麼?

謝謝!

+0

這些文件被原始配方打包,據我所知:默認情況下,標題以$ {PN} -dev包結尾。你確定你新安裝的頭文件不在-dev包中嗎? – jku

+0

當我查看alsa的構建區域(alsa-lib/1.0.27.2-r0)時,它們似乎存在於多個位置,但從未放入映像rootfs。當我查看packages-split/alsa-lib-dev/usr/include時,我只是得到一個目錄'sys',但是如果我查看alsa-lib/1.0.27.2-r0/package /我得到usr/include目錄期望。在alsa-lib/1.0.27.2-r0下的映像目錄中,我也得到了我期望的dirs,包括bin,lib等....但由於某些原因,這並不會導致最終的映像rootfs。 – Chris

回答

3

首先,你不需要我們的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。

+0

感謝安德斯它幫助我到了我需要的地步,但我最終用IMAGE_INSTALL + =「alsa-dev」修復了它,因爲alsa-lib-dev軟件包有大量的輔助文件,我不知道需要和似乎沒有我需要的阿爾薩(!) – Chris