Architecture 为什么苹果需要Rosetta在arm芯片上运行基于x86的应用程序?

Architecture 为什么苹果需要Rosetta在arm芯片上运行基于x86的应用程序?,architecture,arm,rosetta,Architecture,Arm,Rosetta,因此,在苹果推出基于arm的cpu后,许多最初为x86芯片构建的应用程序现在必须使用二进制转换器Rosetta进行翻译,同时等待各公司发布适合arm架构的软件 我不明白的是,既然我们有arm c/c++编译器,为什么运行在x86上的软件不能从源代码编译到arm cpu?这难道不能解决使用效率低下的二进制翻译的问题吗 我很确定我把一些重要的事情弄糊涂了 提前谢谢。第一个“只是重新编译”通常不是“只是”,而是涉及一些工作。 但在任何情况下,即使只是一个简单的重新编译,每个供应商都必须为自己的软件进行

因此,在苹果推出基于arm的cpu后,许多最初为x86芯片构建的应用程序现在必须使用二进制转换器Rosetta进行翻译,同时等待各公司发布适合arm架构的软件

我不明白的是,既然我们有arm c/c++编译器,为什么运行在x86上的软件不能从源代码编译到arm cpu?这难道不能解决使用效率低下的二进制翻译的问题吗

我很确定我把一些重要的事情弄糊涂了

提前谢谢。

第一个“只是重新编译”通常不是“只是”,而是涉及一些工作。
但在任何情况下,即使只是一个简单的重新编译,每个供应商都必须为自己的软件进行重新编译。苹果不能集中为每个人做这件事。

对此有多种答案:

  • 苹果最终希望所有的软件都能在ARM架构上开发和运行。这将使开发人员能够理解两者之间的区别
  • 新架构的MacBook需要出售,开发者是购买这些笔记本电脑的最大社区之一
  • 如上所述,除了重新编译程序外,还涉及到其他几个阶段。例如,其中一个阶段是nee架构的性能优化和功耗优化

  • 苹果公司正在提供Rosetta,以进入开发者社区,聚集资源,构建更强大、更直观、运行更好的应用程序。

    这将涉及到什么样的工作?如果我正在编写一个在x86上运行的C程序,并且我正在切换到一台arm机器,我能不能把我的.C文件移到那里,用arm编译器编译它?