FBSDKLoginCore 架构 armv7 的未定义符号

Posted

技术标签:

【中文标题】FBSDKLoginCore 架构 armv7 的未定义符号【英文标题】:Undefined symbols for architecture armv7 for FBSDKLoginCore 【发布时间】:2015-11-14 22:12:36 【问题描述】:

我最近在尝试使用 Parse SDK 和 Facebook SDK 实现 Facebook 登录时遇到了这个错误。

我采取了以下步骤:

导入以下框架

在桥接头下列出它们

我在构建项目后收到以下错误。

我尝试过的解决方案:

-从“其他链接器”中删除 -ObjC 并添加 $(inherited) -将架构更改为“标准” -选择 libz.1.2.5.dylib 构建并运行

我不确定我做错了什么。

更新:

这是我要求的命令行。

【问题讨论】:

您在哪个版本的 Xcode 上运行,因为在 Xcode 7 中,没有更多的动态二进制库 (.dylib) 而不是它提供 .tbd 库,而我的东西可能会被 OS X 识别EI Capitan 和 OS X EI Capitan 支持 .tbd(文件扩展名),这在 OS X Yosemite 中不可用?所以有(.dylib)的项目只能在低版本的Xcode 7中运行。 @Abhishek 正确。我正在使用 Xcode 7 和 OS X El Capitan。 添加 .tbd 库代替您的 dylib.. @Abhishek 我尝试用 tbd 库替换所有 4 个。我得到了同样的错误。 :// 可能您正在使用旧版本的框架,也来自您的编译错误,看起来您缺少在项目中导入某些框架,因为从错误中引用通常是当我们缺少导入所需的框架时。 【参考方案1】:

它与您的链接顺序有关。 LoginKit 需要 CoreKit 中的符号,但由于您的链接顺序错误而无法找到它们。这就是您收到Undefined symbols 错误消息的原因。

解决方案: 颠倒你的链接顺序。

转到 Xcode 中的目标 -> 构建阶段 -> 将二进制文件与库链接 然后拖动这两个库。 :)

【讨论】:

我试过了,即使在LoginKit之前拖了CoreKit,我仍然会遇到这四个错误。 嗨。您能否另外提供编译命令行。它在 Xcode 的错误摘要中可见。我想在那里查看链接器标志和参数,并将它们与我的设置输出进行比较。谢谢。 是的,当然!我将更新我的错误摘要。谢谢马库斯!

以上是关于FBSDKLoginCore 架构 armv7 的未定义符号的主要内容,如果未能解决你的问题,请参考以下文章

arm64 armv7 armv7s 架构设置

没有要编译的架构 (ARCHS=armv7,armv7s, VALID_ARCHS=armv7 armv7s)

我可以构建 Armv7 + Arm64 架构,但不能单独构建 Armv7

Xcode 6 标准架构不包括 armv7s

架构 armv7s 的未定义符号:iPhoneExtAudioFileConvertTest

无法为 armv7s 编译这里有效的架构是 armv6、armv7 和 i386