2015-09-28 2 views
4

Я пытаюсь включить определенные файлы заголовков в сборку yocto, которые находятся в пакетах dev. Пакеты - это boost и alsa.Включая определенные файлы заголовков в yocto build

Я включил файлы рецептов битбака в мой рецепт изображения, который является bbappend основного рецепта (console-trdx-image.bb) как IMAGE_INSTALL + = и битовал изображение.

Когда я смотрю в своем каталоге работы по строительству, в пакетах для alsa и увеличиваю все файлы, я всегда хочу, чтобы они были - usr/include/alsa.

У меня возникли трудности с получением встроенного/установленного материала пакета в корневые файлы самого изображения.

Мой .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" 

Когда я смотрю в/USR/включать в корневой файловой системы создаваемого образа, нет ничего там. Не колбаса.

У кого-нибудь есть идеи, почему?

Спасибо!

+0

Эти файлы упаковываются по оригинальному рецепту, насколько я могу видеть: заголовки заканчиваются в $ {PN} -dev пакете по умолчанию. Вы уверены, что ваши недавно установленные заголовки не находятся в пакете -dev? – jku

+0

Когда я смотрю в области сборки для alsa (alsa-lib/1.0.27.2-r0), они, кажется, находятся там в нескольких местах, но никогда не попадают в изображение rootfs. Когда я смотрю в пакетах-split/alsa-lib-dev/usr/include, я просто получаю один каталог sys, но если я смотрю alsa-lib/1.0.27.2-r0/package /, я получаю каталог usr/include ожидать. В изображении dir под alsa-lib/1.0.27.2-r0 я также получаю dirs, которых я ожидаю, например, include, 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

Спасибо Anders, он помог мне до такой степени, что мне нужно было, но я исправил его в конце с IMAGE_INSTALL + = "alsa-dev", потому что в пакете alsa-lib-dev имеется большое количество вспомогательных файлов, которые я не делаю нужны и, похоже, не нужны alsa, которые мне нужны (!) – Chris

Смежные вопросы