将软件包添加到Yocto主机SDK

6

我试图使用Yocto的sdk工具为一个Yocto qemu交叉编译程序。在设置好sdk并进行了源操作后,尝试交叉编译程序失败,出现以下错误:

*** Unable to find the ncurses libraries or the
*** required header files.
*** 'make menuconfig' requires the ncurses libraries.
*** 
*** Install ncurses (ncurses-devel) and try again.
*** 

所以我将ncurses添加到镜像配方的IMAGE_INSTALL列表中,就像安装其他软件包(如dropbear)一样,并确认提供这些软件包的meta层已包含在bblayers.conf文件中。然后...

TOOLCHAIN_HOST_TASK += "nativesdk-ncurses nativesdk-ncurses-dev"

为了让bitbake给主机sdk访问ncurses,需要将其添加到镜像的配方中。我尝试添加几个变体nativesdk-ncurses-devel,以更接近错误所要求的内容,但是无法使用它构建图像。然后重新构建和重新源化图像和sdk,但在尝试交叉编译程序时,仍提示安装ncurses(ncurses-devel)并重试。

因此,我的问题是:

如何正确地将ncurses添加到Yocto的主机sdk环境中?我是否漏掉了某个步骤?所需的ncurses文件是否与meta层中找到的文件不同?

非常感谢您的帮助。

-Patches


4
你不能使用TOOLCHAIN_HOST_TASK += "foo",你需要使用TOOLCHAIN_HOST_TASK_append = " foo"。我看到过一篇邮件列表的帖子讲述了这个问题,但我现在找不到了。要点是用 ?= 定义后,+= 会完全覆盖它。 - jpkotta
这似乎是正确的答案,因为如果有人制作不包含该packagegroup(即自定义工具链)的sdk,则使用nativesdk-packagegroup-sdk-host.bb将无法正常工作。当将此解决方案放入local.conf中时,它似乎可以正常工作。 - Pawel K
补充上面的内容:https://www.yoctoproject.org/docs/3.0/sdk-manual/sdk-manual.html#sdk-adding-individual-packages - Harvey
我想添加pyyaml。将“nativesdk-python3-pyyaml”添加到“nativesdk-packagegroup-sdk-host.bb”中对我有效,但我希望将其添加到我的local.conf或我的自定义层中,该层在我的git存储库上被跟踪。到目前为止,我还没有实现这一点。 TOOLCHAIN_HOST_TASK:append =“python3-pyyaml”,TOOLCHAIN_HOST_TASK:append =“nativesdk-python3-pyyaml”分别显示以下错误:ERROR:Nothing RPROVIDES'packagegroup-cross-canadian-ls1046ardbpython3-pyyaml' - Simon Rechermann
1
@SimonRechermann 在你的包名前面缺少一个空格。没有它,append会在RPROVIDES列表中创建一个无效值(该列表是以空格分隔的)。 - frsc
1个回答

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接