5

開発パッケージにある特定のヘッダー ファイルを yocto ビルドに含めようとしています。パッケージはboostとalsaです。

IMAGE_INSTALL += としてコア レシピ (console-trdx-image.bb) の bbappend であるイメージ レシピにビットベイク レシピ ファイルを含め、イメージをビットベイクしました。

ビルド作業ディレクトリを見ると、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"

作成されたイメージの rootfs の /usr/include を見ると、そこには何もありません。ソーセージではありません。

誰でも理由はありますか?

ありがとう!

4

1 に答える 1

3

まず、ヘッダー ファイルをパッケージ化するためだけに、bbappend は必要ありません。

サブディレクトリ alsa には、alsa ライブラリ用にインストールされたすべてのヘッダー ファイルがあります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

ただし、これらのヘッダー ファイルは、(ほとんどの場合) 無意味であるため、通常は rootfs にはインストールされません。ターゲット上で alsa-lib に対して直接開発できるようにしたい場合はalsa-lib-dev、イメージにすべてを適用する必要があります。 IMAGE_INSTALL += "alsa-lib-dev" できれば、画像レシピを追加 してください。 IMAGE_INSTALL_append = " alsa-lib-dev" local.confに追加することもでき ます。_append文字列の先頭のスペースとの使用に注意してください。

これらのいずれかを実行すると、すべてのヘッダー ファイルが rootfs に追加されます。

于 2015-09-29T06:15:57.053 に答える