Автоматически добавленная зависимость времени выполнения не работает в Yocto?Linux

Ответить
Anonymous
 Автоматически добавленная зависимость времени выполнения не работает в Yocto?

Сообщение Anonymous »

У меня вопрос о системе сборки Yocto.
Я просто из любопытства сделал следующее:
У меня есть два рецепта. p>
  • myapp.bb: создает простое приложение myapp, использующее общую библиотеку libA.so.1.1
  • libprovider.bb: создает библиотеку libA.so.1.1, которая используется by myapp (точнее, это создает libA.so.1.1 и libA.so, которые являются символической ссылкой на libA.so.1.1)
Сначала я создал libprovider с помощью $ bitbake libprovider
и я вручную копирую libA.so.1.1 в каталог files/, в котором существует рецепт myapp.bb, и написал myapp.bb следующим образом:

Код: Выделить всё

...
...
SRC_URI = "file://mycode.c \
file://myheader.h \
file://libA.so \
file://libA.so.1.1 \
"

S = "${WORKDIR}"

do_compile() {
${CC} mycode.c ${LDFLAGS} -o myapp -lA -L.
}

do_install() {
install -d ${D}${bindir}
install -m 0755 myapp ${D}${bindir}
}
Обратите внимание, что в команду gcc добавлена ​​опция -L., позволяющая gcc выполнять поиск libA.so в текущем рабочем каталоге.
Когда я запускаю $ bitbake myapp в этом состоянии, сборка завершается с ошибкой и появляется следующее сообщение об ошибке:

Код: Выделить всё

 requires , but no providers in its RDEPENDS [file-rdeps]
Я знаю, что RDEPENDS:${PN} += "libprovider", и подтвердил, что сборка завершится успешно, если RDEPENDS:${PN} += "libprovider" добавляется.
Но я также нашел в документации Yocto, что в системе сборки yocto есть функция "Автоматически добавленные зависимости времени выполнения".
Согласно руководству, я считаю, что libprovider следует добавить в RDEPENDS моего приложения, даже если я не добавляю RDEPENDS:${PN} += "libprovider".
В каталоге tmp/pkgdata//runtime находятся файлы описания зависимостей libprovider и myapp:
  • libprovider

Код: Выделить всё

...
FILESRPROVIDES: /usr/lib/libA.so.1.1:libprovider: libA.so.1.1()(64bit)
...
  • мое приложение

Код: Выделить всё

...
FILESRDEPENDS: /usr/bin/myapp:myapp: ... ... libA.so.1.1()(64bit) ...
...
Кто-нибудь знает, почему «Автоматически добавленные зависимости времени выполнения» Yocto не работают в этой ситуации?

< strong>Дополнительное примечание
Когда я добавил DEPENDS += "libprovider" в myapp.bb с назначением NO RDEPENDS, "Автоматически добавлены зависимости времени выполнения" " работает хорошо,
Сборка myapp.bb прошла успешно,
и окончательный fmage содержит пакет libprovider, хотя я только добавлено IMAGE_INSTALL:append = "myapp" в local.conf

Подробнее здесь: https://stackoverflow.com/questions/791 ... g-in-yocto
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»