【问题标题】:Undefined symbols for architecture x86_64: "_OBJC_CLASS_$_CMMotionManager", referenced from: objc-class-ref in GooglePlus(GPPSpamSignal.o)架构 x86_64 的未定义符号:“_OBJC_CLASS_$_CMMotionManager”,引用自:GooglePlus 中的 objc-class-ref (GPPSamSignal.o)
【发布时间】:2015-08-13 08:10:39
【问题描述】:

您好,我有一个项目,有人已经开发了。它具有G+,FB集成。当我得到项目并尝试运行它时,它给了我这个错误。我该如何解决这个问题?请帮帮我。

Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_CMMotionManager", referenced from:
  objc-class-ref in GooglePlus(GPPSpamSignal.o)
 ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

谢谢

【问题讨论】:

  • 请提供更多关于您如何运行它、Xcode 版本、目标平台、使用的设备或模拟器的信息?
  • Xcode 为 6.3,部署目标 8.3,所需设备功能 - armv 7

标签: ios google-plus-signin


【解决方案1】:

未定义的符号通常意味着您缺少导入语句。 看起来你正在使用 CMMotionManager 是 CoreMotion 的一部分,因此您可能需要:

#import <CoreMotion/CoreMotion.h>

并确认您已将CoreMotion 添加到您的项目中

【讨论】:

  • 没有。那将是一个编译错误。 OP 需要链接到CoreMotion.framework
【解决方案2】:

由于 CMMotionManager 是 CoreMotion 框架的一部分,只需在 Xcode 中“target”的 Build Phases 中包含该框架:“link with”:添加“+”“CoreMotion.framework”

【讨论】:

    【解决方案3】:

    通过简单地将.h.m 文件添加到项目中,我设法调用了这个邪恶的错误。

    我通过删除它们来解决这个问题,然后右键单击项目,单击新建文件,然后选择一个新的 iOS Cocoa Touch 类。

    之后,我将相关代码复制到各自的.h.m 文件中。这样做可以正确链接文件

    【讨论】:

      【解决方案4】:

      CMMotionManager 是 CoreMotion.framework 的一部分。
      在 Xcode 11.3 中,TARGETS > Frameworks, Libraries, and Embedded Content > 单击添加按钮“+”,添加 CoreMotion.framework。
      图片如下。

      【讨论】:

      • 我爱你
      【解决方案5】:

      您似乎正在使用 GooglePlus SDK,并且该 SDK 不支持 arm64 架构。您需要一个支持 arm64 架构的更新 SDK。确保您有最新的副本。

      【讨论】:

        猜你喜欢
        • 2015-05-07
        • 2012-08-03
        • 2018-04-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-22
        • 2016-11-12
        • 2018-06-23
        相关资源
        最近更新 更多