在新的XCode 5.1中,arm64已经成为构建的标准架构之一。
然而,在我目前的项目中,我包含了一些还不支持这种新架构的库(例如谷歌AdMob )--这些库现在导致了链接器错误:
ld: symbol(s) not found for architecture arm64例如,谷歌AdMob 6.8.0是said to be supporting arm64,但我不能真正确认这一点,除非cputype (16777228) cpusubtype (0)是arm64?(通过文件命令行工具找到)
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有没有办法解决这个问题?
发布于 2014-03-13 12:26:17
在您的目标的构建设置中,将“有效体系结构”更改为仅您支持的体系结构;在本例中可能是armv7和armv7s。
如果您正在使用Cocoapods,请确保为Pods项目中的所有目标更改此设置,并将所有这些目标的"Build Active Architecture Only“设置为"No”。
这里详细介绍了对podfile进行的一项小更改,以便自动从cocoapods目标中删除64位构建体系结构:http://cameronspickert.com/2014/01/20/remove-the-arm64-architecture-from-cocoapods-targets
发布于 2014-03-16 02:22:41
我也犯了同样的错误。下载新版本的谷歌AdMob SDK 6.8.0解决了这个问题。这是链接:https://developers.google.com/mobile-ads-sdk/download#downloadios
因此,没有必要禁用arm64体系结构。
https://stackoverflow.com/questions/22323039
复制相似问题