C++ Can';t使用Yocto为Windows生成SDK

C++ Can';t使用Yocto为Windows生成SDK,c++,embedded-linux,yocto,toolchain,C++,Embedded Linux,Yocto,Toolchain,我已经用工具链为飞思卡尔imx6qpsabreai板和SDK构建了一个Linux映像,该工具链在Linux上运行良好 现在我想支持Windows上的开发,下面是我的帖子 下载到sources/meta-openembedded/meta-mingw 在我的项目中将SDKMACHINE=x86_64-mingw32添加到local.conf 但是,我不能用这种方式构建新的SDK ~/yocto/fsl-community-bsp/build_fsl_framebuffer$ bitbake f

我已经用工具链为飞思卡尔imx6qpsabreai板和SDK构建了一个Linux映像,该工具链在Linux上运行良好

现在我想支持Windows上的开发,下面是我的帖子

  • 下载到sources/meta-openembedded/meta-mingw
  • 在我的项目中将SDKMACHINE=x86_64-mingw32添加到local.conf
但是,我不能用这种方式构建新的SDK

~/yocto/fsl-community-bsp/build_fsl_framebuffer$ bitbake fsl-image-machine-test -c populate_sdk
Loading cache: 100% |###############################################################################################################################################################################| Time: 0:00:00
Loaded 2 entries from dependency cache.
ERROR: /home/slavskaya/yocto/fsl-community-bsp/sources/meta-openembedded/meta-mingw/recipes-support/libiconv/libiconv_1.14.bb: Error executing a python function in <code>:                        | ETA:  --:--:--

The stack trace of python calls that resulted in this exception/failure was:
File: '<code>', lineno: 13, function: <module>
     0009:__anon_35__home_slavskaya_yocto_fsl_community_bsp_sources_poky_meta_classes_devshell_bbclass(d)
     0010:__anon_106__home_slavskaya_yocto_fsl_community_bsp_sources_poky_meta_classes_sstate_bbclass(d)
     0011:__anon_45__home_slavskaya_yocto_fsl_community_bsp_sources_poky_meta_classes_blacklist_bbclass(d)
     0012:__anon_158__home_slavskaya_yocto_fsl_community_bsp_sources_poky_meta_classes_siteinfo_bbclass(d)
 *** 0013:__anon_31__home_slavskaya_yocto_fsl_community_bsp_sources_meta_openembedded_meta_mingw_recipes_support_libiconv_libiconv_1_14_bb(d)
File: '/home/slavskaya/yocto/fsl-community-bsp/sources/meta-openembedded/meta-mingw/recipes-support/libiconv/libiconv_1.14.bb', lineno: 28, function: __anon_31__home_slavskaya_yocto_fsl_community_bsp_sources_meta_openembedded_meta_mingw_recipes_support_libiconv_libiconv_1_14_bb
     0024:inherit autotools pkgconfig gettext
     0025:
     0026:python __anonymous() {
     0027:    if d.getVar("TARGET_OS") != "linux":
 *** 0028:        return
     0029:    if d.getVar("TCLIBC") == "glibc":
     0030:        raise bb.parse.SkipPackage("libiconv is provided for use with uClibc only - glibc already provides iconv")
     0031:}
     0032:
Exception: TypeError: getVar() missing 1 required positional argument: 'expand'

ERROR: Failed to parse recipe: /home/slavskaya/yocto/fsl-community-bsp/sources/meta-openembedded/meta-mingw/recipes-support/libiconv/libiconv_1.14.bb

Summary: There were 2 ERROR messages shown, returning a non-zero exit code.
~/yocto/fsl community bsp/build\u fsl\u framebuffer$bitbake fsl image machine test-c populate\u sdk
3月15日,本月月日日,各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各本35现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场本35现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场本35现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场时间:0:00:00
已从依赖项缓存加载2个条目。
错误:/home/slavskaya/yocto/fsl community bsp/sources/meta-openembedded/meta-mingw/recipes-support/libiconv/libiconv_1.14.bb:在
中执行python函数时出错:| ETA:-::--
导致此异常/失败的python调用的堆栈跟踪为:
文件:“
”,行号:13,函数:
0009:uuuu anon_u35_uuhome_uslavskaya_oyocto_ofsl_o社区o bsp_o来源o poky_ometa_o类o devshell_obbclass(d)
0010:uuuu anon_u106_uuhome_uslavskaya_yocto_fsl_ucommunity_uBSP_usources_upoky_umeta_uclasses_usstate_bbclass(d)
0011:uuu anon_u45_uuhome_uslavskaya_yocto_fsl_ucommunity_ubsp_usources_upoky_umeta_uclasses_ublacklist_bbclass(d)
0012:uuu anon_u158_uhome_uslavskaya_yocto_fsl_ucommunity_ubsp_usources_upoky_umeta_uclasses_usiteinfo_bbclass(d)
***0013:uuu anon_u31_uuhome_uslavskaya_oyocto_ofsl_o社区o bsp_o源o元o元o明o配方o支持o libiconv_o1_o14_obb(d)
文件:'/home/slavskaya/yocto/fsl community bsp/sources/meta openembedded/meta mingw/recipes support/libiconv/libiconv_1.14.bb',行号:28,功能:u anon_31_uhome\u slavskaya_yocto fsl_community\u bsp\u sources\u meta_openembedded\u meta_-mingw_recipes\u support_ulibiconv\u 1_14.bb
0024:继承自动工具pkgconfig gettext
0025:
0026:python\uuuu匿名(){
0027:如果d.getVar(“目标操作系统”)!=“linux”:
***0028:返回
0029:如果d.getVar(“TCLIBC”)=“glibc”:
0030:raise bb.parse.SkipPackage(“提供的libiconv仅用于uClibc-glibc已经提供了iconv”)
0031:}
0032:
异常:TypeError:getVar()缺少1个必需的位置参数:“expand”
错误:无法分析配方:/home/slavskaya/yocto/fsl community bsp/sources/meta openembedded/meta mingw/recipes support/libiconv/libiconv_1.14.bb
摘要:显示了2条错误消息,返回非零退出代码。

另外,我不是一个经验丰富的C/C++程序员,但从我的角度来看,mingw不包含arm体系结构的编译器,所以我可能无法在Windows上使用arm工具链?

meta mingw构建了一个从Linux到Windows的交叉编译(mingw)。然后,它使用这个交叉编译器构建从(mingw)到目标SDK环境的标准工具链。您正在使用正确的图层,但有一个不同的问题

您使用的层(meta mingw)似乎需要更新的bitbake语义:

 0027:    if d.getVar("TARGET_OS") != "linux":
***0028:返回 异常:TypeError:getVar()缺少1个必需的位置参数:“expand”

Bitbake过去需要“d.getVar”的两个参数,现在只需要一个(第二个是可选的)


我建议您确定正在使用的oe core/poky版本,并获得匹配的meta mingw版本。(这可能很简单,只需检查正确的分支即可。)

meta mingw构建了一个从Linux到Windows的交叉编译(mingw)。然后,它使用这个交叉编译器构建从(mingw)到目标SDK环境的标准工具链。您正在使用正确的图层,但有一个不同的问题

您使用的层(meta mingw)似乎需要更新的bitbake语义:

 0027:    if d.getVar("TARGET_OS") != "linux":
***0028:返回 异常:TypeError:getVar()缺少1个必需的位置参数:“expand”

Bitbake过去需要“d.getVar”的两个参数,现在只需要一个(第二个是可选的)


我建议您确定正在使用的oe core/poky版本,并获得匹配的meta mingw版本。(可能只需检查正确的分支即可。)

非常感谢您解释此错误消息,我在使用morty yocto分支时检查了meta mingw master分支。非常感谢您解释此错误消息,我在使用morty yocto分支时检查了meta mingw master分支。