假设我从 hello.c
创建了一个目标文件在 x86 计算机,然后将该文件发送到 臂 计算机。它能够从接收到的目标文件中构建一个可执行文件吗?假设我们正在使用 gcc
.
注:
我知道交叉编译是一种众所周知的方法,可以实现基本相同的最终结果,但对这种特定情况感到好奇。
我也知道这个 question ,但我想主要强调不同的 CPU 体系结构和相同的编译器,因为我没有发现这些点是我适度的理解。
最佳答案
目标文件包含的内容没有标准。有些可能已经包含机器指令,有些可能是独立于平台的。因此,如果有的话,它取决于您的特定编译器,因此成为特定于应用程序的问题。
例如,ELF -header 包含有关编译二进制文件的 CPU 和 ABI 的信息,不幸的是,这已经结束了讨论。
关于cpu-architecture - 目标文件体系结构是否独立?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25012014/