xcode 5.1 中的 Arm64 架构 [英] Arm64 architecture in xcode 5.1

查看:34
本文介绍了xcode 5.1 中的 Arm64 架构的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在新的 XCode 5.1 中,arm64 已成为构建的标准架构之一.

但是,在我当前的项目中,我包含了尚不支持这种新架构的库(例如 Google AdMob) - 这些现在会导致链接器错误:

ld:找不到架构 arm64 的符号

Google AdMob 6.8.0 例如是 据说是支持 arm64 但我真的无法确认这一点,除非 cputype (16777228) cpusubtype (0) 是 arm64?(通过文件命令行工具找到)

libGoogleAdMobAds.a:具有 5 种架构的 Mach-O 通用二进制文件libGoogleAdMobAds.a(用于架构 armv7):当前 ar 存档随机库libGoogleAdMobAds.a(用于架构 armv7s):当前 ar 存档随机库libGoogleAdMobAds.a(适用于架构 i386):当前 ar 存档随机库libGoogleAdMobAds.a(适用于 x86_64 架构):当前 ar 存档随机库libGoogleAdMobAds.a(用于架构 cputype (16777228) cpusubtype (0)):当前 ar 存档随机库

有没有办法解决这个问题?

解决方案

暂时摆脱 arm64 并不难.您需要做的就是:

  • 编辑您的目标构建设置.通过打开下拉菜单更改 Architectures 的值,单击 Other... 并选择它,删除值为 的行$(ARCHS_STANDARD) 并添加两行值:armv7armv7s(或 nschum 提到的 $(ARCHS_STANDARD_32_BIT)),关闭弹出窗口.

  • 编辑值 Valid Architectures 并简单地删除它的 arm64 部分.p>

  • 为您的工作区或项目中可能拥有的每个嵌套项目执行此操作.

注意:这不是解决方案,它只是缓解您当前问题的几个步骤,请继续关注您的依赖项目以了解它们何时与 arm64 兼容并恢复这些设置的更改尽快.

祝你好运

In the new XCode 5.1, arm64 has become among the standard architectures to build for.

However, in current projects of mine I included libraries (Google AdMob for example) that do not yet support this new architecture - these are now causing linker errors:

ld: symbol(s) not found for architecture arm64

Google AdMob 6.8.0 for example is said to be supporting arm64 but I can't really confirm this, unless cputype (16777228) cpusubtype (0) is arm64? (found through the file command-line tool)

libGoogleAdMobAds.a: Mach-O universal binary with 5 architectures
libGoogleAdMobAds.a (for architecture armv7):   current ar archive random library
libGoogleAdMobAds.a (for architecture armv7s):  current ar archive random library
libGoogleAdMobAds.a (for architecture i386):    current ar archive random library
libGoogleAdMobAds.a (for architecture x86_64):  current ar archive random library
libGoogleAdMobAds.a (for architecture cputype (16777228) cpusubtype (0)):   current ar archive random library

Is there a way to go about this?

解决方案

It's not that hard to get rid of arm64 for the time being. all you need to do is to:

  • Edit your target's Build Settings. Change the value for Architectures by opening the drop down, click on Other... and select it, delete the row with value $(ARCHS_STANDARD) and add two rows with values: armv7 and armv7s (or $(ARCHS_STANDARD_32_BIT) as mentioned by nschum), close the popup.

  • Edit the value Valid Architectures and simply remove the arm64 part of it.

  • Do it for every nested project you might have inside your workspace or project.

Note: This is not a solution, it's just a few steps to mitigate your current problem, please keep following your dependency projects to find out when they come with arm64 compatibility and revert these settings' change ASAP.

Good luck

这篇关于xcode 5.1 中的 Arm64 架构的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆