向yocto主机sdk添加软件包

向yocto主机sdk添加软件包,sdk,ncurses,qemu,yocto,bitbake,Sdk,Ncurses,Qemu,Yocto,Bitbake,我正试图使用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. ***

我正试图使用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\u 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
层中的文件不同

任何帮助都将不胜感激


-补丁程序

请在nativesdk-packagegroup-sdk-host.bb中添加所需的包作为RDEPENDS_${PN}


你不能做
工具链\u主机\u任务+=“foo”
,你需要做
工具链\u主机\u任务\u append=“foo”
。我看到一个关于这个的邮件列表,但我再也找不到了。要点是,它是用
?=
定义的,因此
+=
完全覆盖它。这似乎实际上是正确的答案,因为如果有人在没有该软件包组(即自定义工具链)的情况下制作sdk,那么使用nativesdk-packagegroup-sdk-host.bb似乎不起作用,当将此解决方案放入local.conf中以添加到上述内容时,该解决方案似乎起作用: