可执行文件中的错误 CPU 类型

Posted

技术标签:

【中文标题】可执行文件中的错误 CPU 类型【英文标题】:Bad CPU type in executable 【发布时间】:2012-03-21 09:03:07 【问题描述】:

我必须更新一个适用于 ios 的应用程序,该应用程序从 iOS 3.1.3 运行到最新的 5.1。

当我在新的 Xcode 4.3.1 上构建代码并尝试在装有 iOS 3.1.3 的旧设备上测试此应用程序时,我收到错误“可执行文件的 CPU 类型错误”。

iOS Deployment Target = 3.1.3
Architectures = armv6 $(ARCHS_STANDARD_32_BIT) - armv6 $
Valid Architectures = armv6 armv7

如果我将 armv5 添加到有效架构列表中,代码会安装在设备上,但应用程序以黑屏启动,并且没有任何反应。 然后我可以停止程序并在设备上启动它。它似乎工作了。

是否允许将 armv5 添加到有效架构列表中?这是摆脱错误的解决方案吗?

【问题讨论】:

我不知道你的项目中发生了什么,但你不应该使用“armv5”!你试过添加armv7吗? 我认为不需要 armv5。尝试将 Architectures 的值设置为字符串“armv6 armv7”,即删除$(ARCHS_STANDARD_32_BIT) 变量。这是一个带有屏幕截图的相关问题***.com/questions/4198676/… 将 Architectures 的值设置为字符串 "armv6 armv7" 后,程序在 3.1.3 设备上运行。谢谢! @thpitsch 你找到解决这个问题的方法了吗? iPhone 上实际上没有 armv5 这样的东西。最初的 iPhone 是从 armv6 开始的。然后苹果将其升级到 armv7。 【参考方案1】:

我今天在 iOS 4.1 和 Xcode 4.3.3 上看到了同样的问题。修复 - 只需重新打开 Xcode 并重新连接手机。

【讨论】:

这个魔法也帮助了我使用 xcode 4.3 和 iphone 3G (ios 4.2)【参考方案2】:

我在设备(在 iPad2 和 iPhone3GS 上)“重置网络设置”之后解决了这个神奇的问题。这是纯粹的魔法!

【讨论】:

以上是关于可执行文件中的错误 CPU 类型的主要内容,如果未能解决你的问题,请参考以下文章

在 M1 macbook 上 brew install elasticsearch 导致“可执行文件中的 CPU 类型错误”错误

Android 逆向ELF 文件格式 ( ELF 文件类型 | ELF 文件对应 CPU 架构 | ELF 目标文件版本 | 可执行程序起始地址 )

Android 逆向ELF 文件格式 ( ELF 文件类型 | ELF 文件对应 CPU 架构 | ELF 目标文件版本 | 可执行程序起始地址 )

linux创建内核可执行文件时的错误,请问该如何解决?

“错误:无法确定所选 JDK 中的 Java VM 可执行文件”的原因是啥?

《汇编语言》总结01