我可以运行在不同ARM处理器上编译的C程序吗?

时间:2014-12-03 18:37:45

标签: compilation arm native-code

假设我在RaspberryPi上编译了C程序,我可以在Cubietruck上运行这个二进制文件吗? 如何确定2个ARM处理器是否兼容?它们彼此之间是否兼容? 应该是一些简单的答案,参考处理器支持的指令集,但我找不到任何好的材料。

1 个答案:

答案 0 :(得分:3)

有几个条件:

  • 您的可执行文件应使用"最小公分母"您希望支持的所有ARM microarchitectures。请参阅gcc的-march=...选项。假设您正在运行Linux,grep '^model' /proc/cpuinfo应该为您提供每个平台的信息。

  • (相关)所有目标ARM内核(FPU,NEON等)可能都不支持某些功能,因此请务必小心。

  • 当然,您应该在所有支持的平台上运行相同的操作系统。

  • 您需要确保所有支持的平台运行相同的ABI; ARM有history个ABI更改,因此您必须考虑这一点。

如果您足够幸运地只针对相当现代的ARM平台,那么您应该能够找到一些共同点(EABI或Hard Float ABI)。否则,您可能别无选择,只能维护多个版本的可执行文件。