交叉编译选项
于 2010年4月24日
您对交叉编译工具链的策略是什么? 在这里我们探讨
几个选项
- DIY - 需要您手动启动每个步骤,除非您对编写脚本足够熟悉。 由于每个步骤都需要很长时间,这可能是一项繁琐的工作。 但是,它可以让您完全控制并深入了解每个步骤。
- crosstool [http://www.kegel.com/crosstool/] - DIY 的脚本版本 + 补丁。 曾经是我首选的工具,但自 2006 年以来就没有更新过。 仅限于 glibc。
- crosstool-NG [http://ymorin.is-a-geek.org/projects/crosstool] - crosstool 的重写版本。 提供 menuconfig 配置界面,使其非常易于使用。 您还可以传递配置。 支持 glibc,但也支持 uclibc 和 eglibc。
- buildroot [http://buildroot.uclibc.org/] - 在构建整个系统的过程中构建一个基于 uclibc 的 gcc。 可以提取工具链(您也可以强制 buildroot 使用外部工具链 - 从而避免一次又一次地构建相同的工具链)。 由于重点是整个系统,因此这种方法对工具链的了解很少,但根据我的经验,结果通常效果很好。
- scratchbox [http://www.scratchbox.org/] - 提供基于 uclibc 或 glibc 的工具链。 以一种新的方式处理交叉编译 - 提供一个环境,在该环境中,编译的实际交叉部分被抽象出来。 还提供了一个模拟目标环境,因此您可以从 scratchbox 环境中在您的标准 PC 上运行您的 ARM 二进制文件。
可用的选项按某种控制狂因素顺序排列,其中 DIY 提供对每个微小方面的控制,而 scratchbox 只是让事情变得有效。
我自己? 上次我使用了 ct-ng,但我都用过(除非被迫,否则我不会再 DIY 了;))。