gpt4 book ai didi

c++ - 如何将工具链交叉编译到 ARMv5 平台?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:29:50 24 4
gpt4 key购买 nike

我不希望设置工具链以在 x86 主机上交叉编译到 ARMv5 目标(我已经拥有它并且它正在运行),而是要在 ARMv5 平台上编译到 ARMv5 目标(本身)的工具链。我知道我总是可以交叉编译我需要的所有应用程序,但我想在系统上运行一个编译器,这样我就能很好地了解如何对 Rasberry Pi 和 Beaglebone 等其他开发板执行相同的操作,并且因为它看起来很酷。

我研究过 crosstool-ng,但据我了解,它似乎只适用于各种目标的 x86 主机,而不适用于各种目标的各种主机。

是否有任何推荐的工作流程?我想看看处理像 Beaglebone 这样的板的发行版的人是如何做到的,但我似乎找不到任何相关信息,他们是否使用了一些专有解决方案?

有问题的工具链是 this one来自包含源代码的 Sourcery CodeBench Lite,但似乎仅通过已编译的交叉编译器运行它是行不通的。

我发现了一些相关的问题,但似乎没有一个能完全解决问题,是否有某处的指南?对于所有像我一样用谷歌搜索的人,如果这会出现在你的结果中,这里有一些相关的问题:

Cross compile native gcc for arm with crosstool-ng, have toolchain, which architecture deps, and which build, host, and target?

how to change the host type for a 'Canadian cross' compilation of GCC with crosstool-NG

Cross compiling gcc

Compile GCC with Code Sourcery

compiling native GCC for arm using cross-compiler

最佳答案

在大量使用库和工具链之后,我自己设法做到了这一点。

您需要先设置一个交叉编译器来为 ARM926J CPU 编译 ARMv5 可执行文件。为什么选择 ARMv5 和 ARM926J?因为我使用的是 SAM9N12,它利用了 ARM926J 代码(J 表示运行 native JVM 的 Jazelle),该内核是 ARMv5 架构。

您可以从 ARM 的 launchpad based GCC repo 中获取交叉编译器。或者使用 Crosstools-NG 自己制作一个。推荐使用 Crosstools-NG,因为您可以使用自己的标准 C 库(与 uClib 或 musl 相比,GNU 的版本非常可怕)。

最后,您需要使用交叉编译器制作原生 ARM 编译器。通常,您可以使用 Crosstools-NG 执行此操作,但未实现 cross-native 选项,因此您必须执行所谓的 Canadian-Build工作正常,但做了一些多余的步骤。

由于这个问题只是为了了解要使用的一般工作流程,所以我将保持原样并让您引用我的 other question考虑到 Cross-Native 尚未实现,具体询问如何将 Canadian-Build 与 Crosstools-NG 一起使用。

关于c++ - 如何将工具链交叉编译到 ARMv5 平台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29190790/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com