Я новичок в Yocto и делаю несколько стартовых проектов. Я добавил свой собственный слой под названием meta-tutorial
.
У меня есть следующий файл рецепта внутри моего слоя в meta-tutorial/recipe-example/hello/hello_1.0.bb
DESCRIPTION = "Simple helloworld application"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
SRC_URI = "file://hello.c"
S = "${WORKDIR}"
do_compile() {
${CC} hello.c ${LDFLAGS} -o hello
}
do_install() {
install -d ${D}${bindir}
install -m 0755 hello ${D}${bindir}
}
Исходный файл Привет находится по адресу meta-tutorial/recipe-example/hello/files/hello.c
Когда я получаю сценарий oe-init-build-env и пытаюсь создать свой рецепт следующим образом bitbake hello_1.0.bb
, я сталкиваюсь со следующими проблемами:
WARNING: No bb files in default matched BBFILE_PATTERN_meta-tutorial '^/home/Yocto-test/poky/meta-tutorial/'
ERROR: Nothing PROVIDES 'hello_1.0.bb'
В чем именно тут проблема, не понятно?
@OleksandrKravchuk Я не понимаю
посмотрите еще раз на путь и сравните его с моим исправлением.
@АлександрКравчук. Не должно иметь значения, какое имя каталога находится внутри слоя? Bitbake ищет во всех каталогах, верно?
Слой Yocto имеет файл конфигурации, который описывает, где искать рецепты .bb
и файлы добавления рецептов .bbappend
:
meta-tutorial/conf/layer.conf
:...
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb ${LAYERDIR}/recipes-*/*/*.bbappend"
^
|
(Look closely)-----------------
...
Итак, ваша ошибка в том, что вы поместили свой рецепт под путь:
meta-tutorial/recipe-example/hello
^
|
(The mistake)-------
Итак, ваш рецепт должен быть под:
meta-tutorial/recipes-example/hello
^
|
(Correction)---------
`рецепт-пример/...'