微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决为什么苹果需要 Rosetta 才能在 arm 芯片上运行基于 x86 的应用程序?

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

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

我很确定我在这里混淆了一些主要的东西。

提前致谢。

解决方法

对此有多种答案:

  1. Apple 最终希望所有软件都在 ARM 架构上开发和运行。这将使开发人员能够了解有何不同。
  2. 需要出售采用新架构的 MacBook,而开发者是购买这些笔记本电脑的最大群体之一。
  3. 正如上面已经回答的那样,除了重新编译程序之外,还涉及其他几个阶段。例如,其中一个阶段是 nee 架构的性能优化和功耗优化。

Apple 正在提供 Rosetta 以利用开发者社区来众包并构建更强大、更直观且运行更好的应用程序。

,

“只是重新编译”的第一个通常不是“只是”,而是涉及一些工作。 但无论如何,即使只是简单的重新编译,每个供应商也必须为自己的软件这样做。 Apple 无法为每个人集中地做到这一点..

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?