Библиотека построена, но не является частью rootfs - PullRequest
0 голосов
/ 10 сентября 2018

Я построил изображения, используя yocto (core-image-minimal).Мне нужна библиотека "libtinfo" для запуска моего приложения, но она не является частью rootfs.

Я мог видеть, что библиотека была собрана и доступна в папке "cortexa7hf-neon-poky-linux-gnueabi", но онанедоступен в rootfs.Я добавил, используя IMAGE_INSTALL_append.

Мое сомнение в том, что если библиотека не требуется для rootfs (core-image-minimal), то она не должна собираться.

Почему yocto создала эту библиотеку?подобное поведение наблюдалось и с библиотекой libudev.

1 Ответ

0 голосов
/ 10 сентября 2018

Прежде чем ответить на ваш вопрос, если у вас есть приложение, которое зависит от "libtinfo", и ваше приложение также собирается с использованием yocto (скажем, sample_app.bb), то вам следует использовать

DEPENDS += "libtinfo"
RDEPENDS_${PN} += "libtinfo"

.Вы можете включить библиотеку в rootfs, так как ваше приложение нуждается в ней во время выполнения.

Я сомневаюсь, что если библиотека не требуется для rootfs (core-image-minimal), то она не должна быть собрана.

Предположим, у вас есть источник для пакета, который создает двоичный файл, а также библиотека, т.е., например, источник для kmod производит libkmod, а также modprobe, insmod, rmmod.В таких случаях рецепты написаны таким образом, чтобы создать два разных пакета (в зависимости от конфигурации вы можете видеть * .rpm или * .ipk) файлы, то есть kmod_*.ipk/rpm и libkmod2_*.ipk/rpm.

На основе вашего реальногоВ соответствии с требованиями приложения вы можете использовать kmod или libkmod в RDEPENDS.

В вашем случае, libtinfo встроен в пакет ncurses, который может не потребоваться в rootfs для любого пакета.

Почему йото построил эту библиотеку?аналогичное поведение наблюдалось и в библиотеке libudev.

По умолчанию рецепт для исходного компонента ncurses или systemd включает конфигурацию (do_configure) для libtinfo и libudev соответственно,Но он не включен в rootfs, так как ни одному программному обеспечению он не нужен во время выполнения.

Вы всегда можете проверить граф зависимостей, используя

bitbake -g <recipe name>

, как указано здесь .

...