如何在 yocto 中使用外部工具链

Posted

技术标签:

【中文标题】如何在 yocto 中使用外部工具链【英文标题】:How to use external toolchain with yocto 【发布时间】:2020-10-12 11:48:26 【问题描述】:

我以前想使用我的平台工具链。 但是更改工具链对我来说并不容易。 我不知道 yocto 是否允许使用外部工具链 我该怎么办?

非常感谢

步骤:

    克隆 poky 和元外部工具链 克隆https://github.com/BPI-SINOVOIP/BPI-W2-bsp.git到/tmp 修改/添加 conf/local.conf 3.1 修改 MACHINE ??= "qemux86" 为 MACHINE ??= "qemuarm64" 3.2 添加EXTERNAL_TOOLCHAIN = "/tmp/BPI-W2-bsp/toolchains/asdk64-4.9.4-a53-EL-3.10-g2.19-a64nt-160307" 将 meta-external-toolchain 路径添加到 conf/bblayers.conf 运行 bitbake xz -e | grep CC=

我收到了消息

export CC="aarch64-poky-linux-gcc  -march=armv8-a+crc -fstack-protector-strong  -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/tmp/poky/build/tmp/work/aarch64-poky-linux/xz/5.2.4-r0/recipe-sysroot"
    

但我想用这个 gcc 来构建包

/tmp/BPI-W2-bsp/toolchains/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc

如何修改??

【问题讨论】:

【参考方案1】:

yocto 支持外部工具链。您可以通过将值设置为 TCMODEEXTERNAL_TOOLCHAIN 变量(参考 Yocto ref-manual)来做到这一点。从此meta-sourcery中查找更多关于设置外部工具链的信息

【讨论】:

感谢您的回答。我从 poky 中找到了一个元 (git.yoctoproject.org/cgit.cgi/meta-external-toolchain)。我尝试在 local.conf 中设置 EXTERNAL_TOOLCHAIN = "/tmp/BPI-W2-bsp/toolchains/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu" ,但没有成功。工具链来源:github.com/BPI-SINOVOIP/BPI-W2-bsp/tree/master/toolchains/…

以上是关于如何在 yocto 中使用外部工具链的主要内容,如果未能解决你的问题,请参考以下文章

在 Yocto 中使用 armhf 作为辅助工具链

在 MSYS 环境中使用 MSVC 工具链(例如:CL.EXE)时,如何避免“未解析的外部符号 _mainCRTStartup”错误?

带有 cmake 工具链文件的 Yocto SDK

Yocto 正式发布 4.0 版本

如何在Yocto Linux中禁用虚拟终端

如何在 yocto 中编译 linux-raspberrypi 内核?