[英]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以供使用,是否具有工具链,哪种体系结构以及哪种构建,托管和目标?
经过大量库和工具链的摸索之后,我自己做到了。
您首先需要设置一个交叉编译器来为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.