应该使用哪个编译器将 C 代码移植到 ARM?

Posted

技术标签:

【中文标题】应该使用哪个编译器将 C 代码移植到 ARM?【英文标题】:Which compiler should be used for porting C code to ARM? 【发布时间】:2013-03-07 07:07:28 【问题描述】:

我是 ARM 的新手。我已经编写了 C 代码,但我希望将代码移植到在所有 ARM 处理器上运行的 ARM。我将开发高端应用程序,例如在智能手机/平板电脑上运行的应用程序。你们能说出哪个是最好的编译器吗?我听说过 RVDS,但这似乎很昂贵。

我的另一个问题是:我可以使用 Microsoft Visual Studio 2008 像 Neon 一样对 ARM Intrinsic 进行编程吗? RVDS 还有其他替代方案吗?

非常感谢您的建议。

【问题讨论】:

您应该更多地了解 ARM 的产品组合以及您的目标操作系统是什么? 【参考方案1】:

多个版本的 gcc 工具链可用于 ARM 处理器。您需要确定代码的确切目标,例如:

哪个处理器或一组处理器?支持哪些指令集和扩展? (有很多类似ARMv6ARMV7ARMv7a)。其中一些可能支持NEON,而另一些可能没有。 哪种 FPU 支持 - hard FPsoft FP ? 什么样的操作系统环境? Linux ? android ? Bare metal ? 哪个 C 库 - glibcuclibcbionic libc 或其他?

最后两个是内置在工具链中的,不能修改。但是可以使用 gcc 中 ARM 特定的-m 标志来控制选择准确的指令集和优化。

像 Ubuntu 这样的发行版已经将 ARM 工具链作为其存储库的一部分。你也可以试试看:

sudo apt-get install gcc-arm-linux-gnueabi

【讨论】:

以上是关于应该使用哪个编译器将 C 代码移植到 ARM?的主要内容,如果未能解决你的问题,请参考以下文章

将复杂的原生应用程序编译到 Android ARM 的完整方法

如何将用QT做好的播放器移植到ARM开发板上

如何将Linux下的QT程序移植到arm板上

紧急求助,关于arm版本下QWT库移植出现的错误

LinuxQT5移植到Linux ARM

LinuxQT5移植到Linux ARM