Gra*_*ral 1 openembedded bitbake
我正在使用OpenEmbedded用户手册中的“ Hello World”示例以及Yocto Project工具的Dora版本。bitbake构建工作正常,但是未在映像中安装可执行文件。基本上,我用两个配方创建了自己的meta层。一种是Autotools版本的“ Hello World”,它将自身构建并安装到映像中。第二个是“ Hello World”的Makefile版本。这就是我遇到的麻烦。
来源是您所期望的:
#include <stdio.h>
int main(int argc, char** argv)
{
printf("Hello world 2!\n");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
还有一个README.txt文件:
Readme file for Hello World 2.
Run Code Online (Sandbox Code Playgroud)
配方如下:
DESCRIPTION = "Hello World 2 Program"
PR = "r0"
LICENSE = "CLOSED"
RM_WORK_EXCLUDE += "hello2"
SRC_URI = "file://hello2.c \
file://README.txt"
do_compile() {
${CC} ${CFLAGS} ${LDFLAGS} ${WORKDIR}/hello2.c -o hello2
}
do_install() {
install -m 0755 -d ${D}${bindir} ${D}${docdir}/hello2
install -m 0644 ${S}/hello2 ${D}${bindir}
install -m 0644 ${WORKDIR}/README.txt ${D}${docdir}/hello2
}
Run Code Online (Sandbox Code Playgroud)
当我查看工作目录时,我看到可执行文件已生成并生成了打包文件。日志文件中没有任何内容指示(对我来说,是新手)为什么未进行安装。食谱有什么问题吗?或者我可以检查一下以解决问题吗?
好吧,好像您已成功构建了hello world演示,并且正如您指出的那样,您在WORKDIR中找到了文件。但这就是包装食谱的全部内容。它生成一个包。您需要告诉您的图像配方在最终图像中包括新包装。您可以使用以下方法“作弊”并将这些说明放入您的local.conf文件中:
IMAGE_INSTALL_append + =“你好”
但是请注意,仅当您使用基于image.bbclass的标准图像配方时,此技术才有效。
更好的是,修改自己创建的自定义层中使用的图像配方,然后将包添加到图像.bbappend中。
例如,如果您使用的是core-image-base,请创建您自己的自定义层,然后在该层中创建core-image-base.bbappend,然后在该bbappend中,为新创建的“ hello”包添加依赖项。
元数据中有很多示例。查看core-image-base.bb和image.bbclass以获得一些有关如何创建图像的线索。请查看任何packagegroup-core * .bb,以获取有关如何将“ hello”世界指定为运行时依赖项的示例,以便将该软件包安装在映像中。
还请注意,Yocto项目的邮件列表上有很多友好的人,很乐意回答您的问题。freenode.net上还有#yocto和#oe。请查看yoctoproject.org了解详细信息。
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
4416 次 |
| 最近记录: |