繁体   English   中英

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

[英]How to cross compile a toolchain to an ARMv5 platform?

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

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

有没有建议的工作流程? 我当时在想看看处理像Beaglebone这样的董事会分配问题的人是怎么做的,但是我似乎找不到任何相关信息,他们是否使用某些专有解决方案?

有问题的工具链是这样一个距离的Sourcery Codebench完成精简版,其中包括源,但似乎只是通过已编译的交叉编译运行,这并不工作。

我发现了一些相关的问题,但似乎没有一个问题能一路解决,是否有相关的指南? 对于所有像我一样使用谷歌搜索的人,如果这在您的搜索结果中弹出,那么以下是一些相关的问题:

用crosstool-ng交叉编译本机gcc以供使用,是否具有工具链,哪种体系结构以及哪种构建,托管和目标?

如何使用crosstool-NG更改GCC的“加拿大交叉”编译的主机类型

交叉编译gcc

用代码源编译GCC

使用交叉编译器为arm编译本地GCC

经过大量库和工具链的摸索之后,我自己做到了。

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

您可以从基于ARM 启动板的GCC存储库中获得交叉编译器,也可以使用Crosstools-NG自己制作交叉编译器。 建议使用Crosstools-NG,因为您可以使用自己的标准C库(与uClib或musl相比,GNU的版本太可怕了)。

最后,您需要使用交叉编译器来制作本机ARM编译器。 通常,您可以使用Crosstools-NG来执行此操作,但是未实现cross-native选项,因此您必须执行称为“ Canadian-Build ,该方法工作得很好,但需要执行一些冗余步骤。

由于此问题仅是为了说明要使用哪种常规工作流程,因此,我将保持原样,并转介给我另一个问题 ,特别是考虑到尚未实施Cross-Native该如何使用Crosstools-NG使用Canadian-Build

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM