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

Compilation 我可以运行在不同ARM处理器上编译的C程序吗?,compilation,arm,native-code,Compilation,Arm,Native Code,假设我在RaspberryPi上编译了C程序,我能在Cubietruck上运行这个二进制文件吗? 如何确定两个ARM处理器是否兼容?它们之间都兼容吗? 这应该是一些简单的答案,涉及处理器支持的指令集,但我找不到任何关于这方面的好材料。有几个条件: 您的可执行文件应该使用您希望支持的所有文件中的“最小公分母”。请参见gcc的-march=…选项。假设您正在运行Linux,grep'^model'/proc/cpuinfo应该为您提供每个平台的信息 (相关)您的所有目标ARM内核(FPU、NEON

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

有几个条件:

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

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

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

  • 您需要确保所有受支持的平台运行相同的;ARM有很多ABIs更改,所以您必须考虑到这一点

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