проект yocto - отсутствующие зависимости в recipe-sysroot - PullRequest
0 голосов
/ 03 декабря 2018

Как, наверное, все люди yocto знают, что политика sysrootfs изменилась в yocto rocko 2.4+.Поэтому у меня возникает следующая проблема: я пытаюсь создать рецепт для разделяемой библиотеки с помощью makefile.Рецепт ниже (я не утверждаю, что он завершен. Я просто не могу пройти этап строительства):

#==================
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://${THISDIR}/files/LICENSE;md5=5959e502cb44bafc53b2cc9400e3d4cd"
PR = "r0"

##### First try from my local repo and then we will use the big one
SRC_URI = "git:///home/w23698/projects/anybus/Generic;branch=anybus-lib-0.0.1"
SRCREV = "2fe4ce39a651d71f3f8de1c751dff2581de2c526"

S = "${WORKDIR}/git"

PACKAGES = "${PN} ${PN}-dev ${PN}-dbg"
#####The only dependency 
RDEPENDS_${PN} = "libgpiod"
RDEPENDS_${PN}-dev = "libgpiod"
RDEPENDS_${PN}-dbg = "libgpiod"

do_compile() {
    oe_runmake
}

do_install() {
    install -d ${D}${libdir}
    install -m 0644 ${PN}-m40 ${D}${libdir}
}

Каково было мое удивление, когда оно не удалось:

 ww.c:6:10: fatal error: gpiod.h: No such file or directory 
 |  #include "gpiod.h"
 |           ^~~~~~~~~
 | compilation terminated.

ТогдаЯ заметил, что командная строка:

arm-poky-linux-gnueabi-gcc  -march=armv7-a -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a9 --sysroot=/<full path>/recipe-sysroot -L/usr/lib -g -Wall -fpic .....

Я посмотрел в recipe-sysroot/usr/lib/ и нашел минимальный набор библиотек, а libgpiod там не было.Ни один из заголовков не был включен ...

Есть предложения?

1 Ответ

0 голосов
/ 03 декабря 2018

Вы никогда не устанавливаете DEPENDS = libgpiod.

Установленные вами RDEPENDS время выполнения зависит , поэтому они не относятся ко времени компиляции.Вы можете просто удалить их, так как зависимости связей библиотеки будут сгенерированы автоматически.

...