XCode 4.5.2 的“架构的未定义符号”
Posted
技术标签:
【中文标题】XCode 4.5.2 的“架构的未定义符号”【英文标题】:"undefined symbols for architecture" for XCode 4.5.2 【发布时间】:2012-11-12 18:25:20 【问题描述】:我正在尝试将 Apsalar Metrics 集成到我的应用程序中并遵循文档。 但是我收到以下错误:
架构 armv7 的未定义符号: “_OBJC_CLASS_$_Apsalar”,引用自: AppDelegate.o 中的 objc-class-ref ld:未找到架构 armv7 的符号 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
我已经添加了所有需要添加的框架。
【问题讨论】:
【参考方案1】:您的 Apsalar Metrics 库(我假设有)是否仅针对 armv6 编译?如果是这样,您最好获得一个新的更新版本,或者您可以使用将处理 armv6 构建的早期版本的 XCode。如果您无法获得更高版本,您可以尝试我为另一个库编写的这个 hack:How to use armv6 third party libraries in an armv7 app? 如果您不确定,可以按照链接中的说明来确定您编译的内容。
【讨论】:
嘿欧文,我猜它是为 armv6 编译的。但这很荒谬,因为我下载了 XCode 4.5.2 的 SDK。他们应该意识到这一点!我已经详细阅读了文档。然而无济于事。但是非常感谢您的链接!!!...它帮助我理解了可能是什么问题....从来没有想过!!..欣赏它!!.. 如果你有源代码,你可以为armv7重新编译它,或者如果没有其他方法你可以使用hack。我不得不等待两年才能获得第三方库的 armv7 版本,并且黑客允许我继续更新我的应用程序,直到他们终于有时间发布更新。【参考方案2】:我是 Apsalar 的产品支持工程师,之前遇到过这个问题。
当您添加 Apsalar 文件时,您是否选择了“为任何添加的文件夹创建文件夹引用”这可能会导致您的错误:
架构 armv7 的未定义符号:“_OBJC_CLASS_$_Apsalar”,引用自:AppDelegate.o ld 中的 objc-class-ref:未找到架构 armv7 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
为了涵盖所有内容,您添加了 libsqlite3.0dylib、SystemConfiguration.framework、Security.framework 和 AdSupport.framework?这可能与链接器问题有关,特别是如果您在 Build Settings 中将 Architectures 设置为 armv7、armv7s 时。有时“清理所有目标”(产品 > 清理)并退出 Xcode 可能会起作用。
我制作了有关安装 SDK 的教程视频。时长 3-4 分钟,从头到尾涵盖了 integratino:www.youtube.com/watch?v=Dq68XSJ98Hk&feature=youtu.be
【讨论】:
以上是关于XCode 4.5.2 的“架构的未定义符号”的主要内容,如果未能解决你的问题,请参考以下文章
使用 iOS SDK 创建 NativeScript 插件会导致“架构的未定义符号”错误
在设备中使用 xcode 4.5.2 运行 xcode 4.3.3 项目..(模拟器中没有问题)
如果我添加 FacebookSDK.framework,xcode 4.5.2 崩溃
Xcode 4.5.2:如何正确编程 CGRectMake?