gpt4 book ai didi

c++11 - 如果 Mac OS 和 Windows 都使用 x86 指令集,为什么我们要为每个平台重新编译?

转载 作者:行者123 更新时间:2023-12-05 08:33:14 26 4
gpt4 key购买 nike

如果在 Intel 处理器上运行的 Mac OS 和 Windows 都使用 x86 指令集,为什么仅使用 C++11(没有特定于操作系统的库、框架或 API)编写的程序不能在没有为该平台重新编译?

最终程序被编译为机器代码,所以如果指令集相同,有什么区别?到底发生了什么?

编辑:我真的只是在谈论一个简单的“Hello world”程序,它是用 gcc 之类的东西编译的。不是应用程序!

编辑:例如:

    #include<iostream>
using namespace std;

int main()
{
cout << "Hello World!";
return 0;
}

编辑:一个更简单的程序:

int main(){
int j = 2;
j = j + 3;
}

最佳答案

因为现在的“程序”不仅仅是一堆二进制代码。它们的文件格式不交叉兼容(PE/COFF vs. ELF vs. Mach-O)。是的,当您考虑时,这有点愚蠢,但这就是现实。如果历史可以重新开始,就不必这样了。

编辑:

您可能还想看我更长的答案 on SoftwareEngineering.StackExchange (和其他人的)。

关于c++11 - 如果 Mac OS 和 Windows 都使用 x86 指令集,为什么我们要为每个平台重新编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42383105/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com