Architecture Yocto-使用带多库的可扩展SDK 简短版本:

Architecture Yocto-使用带多库的可扩展SDK 简短版本:,architecture,sdk,yocto,Architecture,Sdk,Yocto,我有一个64位的Yocto Raspberry版本,带有一个32位的多库软件。现在的目标是能够使用eSDK为该系统构建32位软件。构建和安装eSDK后,甚至有两个文件environment-setup-aarch64-poky-linux和environment-setup-armv7ve-vfp-pokymlib32-linux-gnueabi。在获得32位的armv7ve环境文件devtool之后,我的软件仍然是64位的。为什么不起作用 长版本: mylocal配置中的多库定义如下所示: r

我有一个64位的Yocto Raspberry版本,带有一个32位的多库软件。现在的目标是能够使用eSDK为该系统构建32位软件。构建和安装eSDK后,甚至有两个文件
environment-setup-aarch64-poky-linux
environment-setup-armv7ve-vfp-pokymlib32-linux-gnueabi
。在获得32位的
armv7ve
环境文件
devtool
之后,我的软件仍然是64位的。为什么不起作用

长版本: my
local
配置中的多库定义如下所示:

require conf/multilib.conf
MULTILIBS = "multilib:lib32"
DEFAULTTUNE_virtclass-multilib-lib32 = "armv7ve"
IMAGE_INSTALL_append_raspberrypi3-64 = " lib32-software-dummy"
softwaremdummy
“helloworld”项目在32位中构建良好

现在转到eSDK:
environment-setup-armv7ve-vfp-pokymlib32-linux-gnueabi
实际上不是现成的,我需要将
environment-setup-aarch64-poky-linux
的底部添加到
environment-setup-armv7ve-vfp-pokymlib32-linux-gnueabi
,因此找到了
devtool

armv7ve
环境文件中缺少此部分:

/workdir/sdk/rpi/buildtools/environment setup*
导出OE\u跳过\u SDK\u检查=1
导出DEPLOY\u DIR\u IMAGE=/workdir/sdk/rpi/tmp/DEPLOY/images/raspberrypi3-64
导出路径=/workdir/sdk/rpi/sysroot/x86_64-pokysdk-linux/usr/bin:$PATH
printf的SDK环境现在已设置;此外,您现在可以运行devtool来执行开发任务。
运行devtool--help以了解更多详细信息。
'
(哪个bitbake>/dev/null 2>&1&&echo“警告:试图在设置为运行bitbake的环境中使用可扩展SDK-这可能会导致意外结果。请改为在新的shell会话中获取此脚本的源代码。”)| | true
否则,我相信环境文件看起来不错

例如,在
environment-setup-aarch64-poky-linux
中,我们有:

export CC=“aarch64 poky linux gcc--sysroot=$SDKTARGETSYSROOT” export CXX=“aarch64-poky-linux-g++--sysroot=$SDKTARGETSYSROOT” … 导出ARCH=arm64 导出交叉编译=aarch64 poky linux- 在
环境-setup-armv7ve-vfp-pokymlib32-linux-gnueabi中时

export CC=“arm-pokymlib32-linux-gnueabi-gcc-march=armv7ve-mfpu=vfp-mfloat abi=softfp--sysroot=$SDKTARGETSYSROOT” export CXX=“arm-pokymlib32-linux-gnueabi-g++-march=armv7ve-mfpu=vfp-mfloat abi=softfp--sysroot=$SDKTARGETSYSROOT” … 导出ARCH=arm 导出交叉编译=arm-pokymlib32-linux-gnueabi- 在找到
armv7ve
环境文件,构建我用devtool添加的软件之后,它仍然是64位的。查看
run.do\u install
日志文件,我看到以下内容:

export AR=“aarch64 poky-linux-AR” 导出为=“aarch64 poky linux-AS” … export CC=“aarch64 poky linux gcc-fstack protector strong-D_FORTIFY_SOURCE=2-Wformat-Wformat security-Werror=format security--sysroot=/workdir/sdk/rpi/tmp/work/aarch64 poky linux/cmake test/1.0-r0/recipe sysroot” … export CCLD=“aarch64 poky linux gcc-fstack protector strong-D_FORTIFY_SOURCE=2-Wformat-Wformat security-Werror=format security--sysroot=/workdir/sdk/rpi/tmp/work/aarch64 poky linux/cmake test/1.0-r0/recipe sysroot” 出于某种原因,它都是64位的,我不知道这是从哪里来的。
armv7ve
环境文件的路径中也有
/workdir/sdk/rpi/tmp/sysroot/x86_64/usr/bin/arm-pokymlib32-linux-gnueabi
,32位编译器似乎就在这里

谢谢你的帮助