为什么windows的软件mac系统上无法执行?

大伯格
  • 371

我知道用高级语言写的程序最终是要翻译成目标CPU的指令。

那么问题来了,mac系统和windows系统用的都是x86 或者 x64的cpu指令集。
也就是翻译的目标cpu指令应该是一样的不是吗?

那么为什么windows的软件不能再mac上执行呢?

回复
阅读 2.4k
1 个回答

有两个主要原因:

  1. 可执行文件格式不一样,windows下是PE格式,mac是ELF格式。
  2. windows和mac的操作系统不一样,系统库也不一样。所以无法兼容。

当然可以通过增加中间层的方式来实现兼容。 比如java代码编译成bytecode,然后通过java虚拟机执行。在这种情况下bytecode通用,每个系统的java虚拟机不一样。 python, php之类的脚本语言也类似,都有编译成中间码,然后每个系统和硬件建构下都有不同版本的运行环境。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏