假设您有一个为 ARM 架构生成二进制文件的交叉编译工具链。
你的工具链是这样的(在带有 Linux 的 X86_64 机器上运行):
- arm-linux-gnueabi-gcc.exe :用于 Linux 的交叉编译,在 ARM 上运行。
- arm-gcc.exe :用于针对 ARM 的裸机交叉编译。
...以及在 ARM 上进行交叉编译的大量其他工具。
我感兴趣的点是:
- (E) 二进制文件之间的 ABI 差异(如果有)
- 裸机情况下的限制(如动态内存分配、在 C++ 情况下使用静态构造函数、线程模型等)
- 两种情况在特定于它们的信息方面的二进制级差异(如调试信息支持等);