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?

Facebook IOS SDK 3.1.1 与 Xcode 4.5.2 错误

systemSound 不再适用于使用 ARC 升级的 Xcode 4.5.2