【问题标题】:Buildroot: install and build the toolchain onlyBuildroot:仅安装和构建工具链
【发布时间】:2017-11-15 05:04:33
【问题描述】:

我只想为我的 Buildroot 项目安装和构建工具链。 make help 建议命令 make <options> toolchain 应该可以工作;但是,运行该命令只会返回 Nothing to be done for 'toolchain'. 并且永远不会创建 output/host

【问题讨论】:

    标签: linux embedded buildroot


    【解决方案1】:

    您首先必须配置 Buildroot 以指示它您想要生成的工具链。请参阅 Buildroot 用户手册中的 Buildroot quick start

    如果你刚刚下载了 Buildroot,生成工具链的步骤是:

    1. 运行make menuconfig
      • Target options 中选择您的硬件平台和 ABI
      • Toolchain 中配置您想要的工具链类型
      • 退出保存
    2. 运行make toolchain

    工具链位于output/host/

    【讨论】:

    • Buildroot 在运行配置之前尝试执行“制作工具链”时确实应该报错,所以我提交了patchwork.ozlabs.org/patch/776011
    • 仅供参考,Arnout 修复了此问题,现在未配置的 Buildroot 将在您运行“make toolchain”时打印错误,而不是旧的误导性消息。修复将在下一个 Buildroot 版本 2017.08 中进行。 (仅供参考,更改在提交中git.buildroot.net/buildroot/commit/…
    【解决方案2】:

    Buildroot manual 中记录了一种仅构建工具链的最新方法,该方法可在 Buildroot 内部和外部使用。

    虽然 Luca 的答案中的 make toolchain 确实构建了工具链,但它还将其他主机依赖项放入 output/host/,与下面的 make sdk 相比,获得干净的工具链稍微困难一些,它会在output/images/:

    6.1.3。使用 Buildroot 构建外部工具链

    Buildroot 内部工具链选项可用于创建外部工具链。以下是构建内部工具链并将其打包以供 Buildroot 本身(或其他项目)重用的一系列步骤。

    创建一个新的 Buildroot 配置,包含以下详细信息:

    • 为您的目标 CPU 架构选择适当的目标选项
    • Toolchain 菜单中,Toolchain type 保留默认的 Buildroot toolchain,并根据需要配置您的工具链
    • 系统配置菜单中,选择作为初始化系统,选择作为/ bin/sh
    • Target packages 菜单中,禁用 BusyBox
    • 文件系统图像 菜单中,禁用 tar 根文件系统

    然后,我们可以触发构建,并要求 Buildroot 生成一个 SDK。这将为我们方便地生成一个包含我们的工具链的 tarball:

    make sdk
    

    这会在 $(O)/images 中生成 SDK 压缩包,名称类似于 arm-buildroot-linux-uclibcgnueabi_sdk-buildroot.tar.gz。保存此 tarball,因为它现在是您可以在其他 Buildroot 项目中作为外部工具链重复使用的工具链。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-11
      • 1970-01-01
      • 2012-02-13
      • 2022-01-05
      • 1970-01-01
      • 2015-09-20
      • 1970-01-01
      • 2019-02-27
      相关资源
      最近更新 更多