为什么必须为每个架构重新编译C?这不是最终的比特和字节,无论如何加载和跳转?每个架构是否基本上都以相同的方式通过最基本的命令?
答案 0 :(得分:11)
答案 1 :(得分:2)
每个架构是否基本上都以相同的方式完成最基本的命令?
大部分时间。但这些基本命令不同represented或implemented。 C编译器负责确保使用正确的表示和实现。
答案 2 :(得分:2)
是的,但所有这些负载和跳跃等在不同平台上看起来都不同。每个CPU系列都有自己的命令集。
在更高层次上,如果我们拥有相同的硬件但操作系统不同(例如Linux / Windows),我们会有不同的库,不同的可执行文件格式等等。
所有这些都是编译器和链接器必须遵守的。
答案 3 :(得分:1)
但每台机器都有自己的instruction set
答案 4 :(得分:0)
每个尝试抽象一些功能,就像每种语言一样,需要调整到具体的架构,或者创建一个可以运行它的虚拟机(对于每个架构)。