【问题标题】:Xcode: Undefined symbols for architecture arm64 errorXcode:架构 arm64 错误的未定义符号
【发布时间】:2014-01-22 11:30:31
【问题描述】:

在我的 Xcode 5 项目中,我使用 RestKit 进行 REST 通信。 模拟器一切正常,但生成 ipa 文件时,出现以下错误:

ld: warning: ignoring file /Users/joseph/Library/Developer/Xcode/DerivedData/XXXXXXXXXX-gdwdekevxtdfivfpsnmyykeqhulk/Build/Products/Debug-iphoneos/libRestKit.a, missing required architecture arm64 in file /Users/joseph/Library/Developer/Xcode/DerivedData/XXXXXXXXXXXXX-gdwdekevxtdfivfpsnmyykeqhulk/Build/Products/Debug-iphoneos/libRestKit.a (2 slices)
Undefined symbols for architecture arm64:
  "_OBJC_CLASS_$_RKRelationshipMapping", referenced from:
      objc-class-ref in classname-xxx.o
  "_OBJC_CLASS_$_RKObjectMapping", referenced from:
      objc-class-ref in classname-xxx.o
  "_OBJC_CLASS_$_RKRequestDescriptor", referenced from:
      objc-class-ref in classname-xxx.o
  "_OBJC_CLASS_$_RKObjectManager", referenced from:
      objc-class-ref in classname-xxx.o
  "_OBJC_CLASS_$_RKResponseDescriptor", referenced from:
      objc-class-ref in classname-xxx.o

  "_RKStatusCodeIndexSetForClass", referenced from:
      -[classname-xxx classname-Method] in classname-xxx.o
      -[classname-xxx classname-Method] in classname-xxx.o
      -[classname-xxx classname-Method] in classname-xxx.o
      -[classname-xxx classname-Method] in classname-xxx.o
      -[classname-xxx classname-Method] in classname-xxx.o
  "_RKMIMETypeJSON", referenced from:
      -[classname-xxxinitWithURLBase:timeOut:] in classname-xxx.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation).

如果在 RestKit 项目中,我在“构建设置”->“架构”中通过标准架构(包括 64 位)(ARMv7、armv7s、arm64)选项更改“标准架构(ARMv7、armv7s)”,一切都会编译美好的 。这是正确的吗?,没有带来任何结果,我必须更改一些其他设置。

【问题讨论】:

  • 您是否尝试在 your 项目和 RestKit 中将“构建设置”->“架构”更改为“标准架构(ARMv7、armv7s) “?
  • 我在我的项目和 RestKit 中更改为“标准架构(包括 64 位)(ARMv7、armv7s、arm64)”。
  • 那么问题是什么?您构建成功但存档没有?
  • 我的问题是,如果它没有带来任何缺点,或者我是否必须添加一些其他配置。因为 RestKit 在“Build Settings”->“Architectures”上默认有“Standard architectures (ARMv7, armv7s)”。
  • 我在下面给您写的内容回答了您的问题?

标签: ios xcode5 restkit


【解决方案1】:

在我的情况下,我忘记在我的项目中添加 sqlite 库。 从链接框架和库添加库后,构建成功。

【讨论】:

    【解决方案2】:

    这对我有用:

    ios SDK 9.3

    进入 app.xcodeproj 有效架构的构建设置:armv7 armv7s 构建活动架构:否

    清理和构建,为我工作。

    【讨论】:

      【解决方案3】:

      我在实现 AVPictureInPictureController 时遇到了相同/类似的问题,问题是我没有在我的项目中链接 AVKit 框架。

      错误信息是:

      架构 armv7 的未定义符号:

      "_OBJC_CLASS_$_AVPictureInPictureController", 
      referenced from:
         objc-class-ref in yourTarget.a(yourObject.o)
      ld: symbol(s) not found for architecture armv7
      

      clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用) 解决方案:

      转到您的项目 选择你的目标 然后,转到构建阶段 使用库打开链接二进制文件 最后,只需添加+ AVKit 框架/任何其他框架。 希望这可以帮助遇到我遇到类似问题的其他人。

      【讨论】:

        【解决方案4】:
        1. 选择 Restkit 项目
        2. 仅构建活动架构设置为No

        【讨论】:

          【解决方案5】:

          只需将 RestKit 项目 -> 构建设置 -> 架构更改为标准架构(armv7、armv7s、arm64)。之后一切都应该正常了。

          【讨论】:

          • @MiBrock 抱歉,我没注意到。
          【解决方案6】:

          这只是意味着您也在为 64 位(iPhone 5s)构建项目,无需担心,请参阅此链接以获得更多解释: Xcode 5 and iOS 7: Architecture and Valid architectures

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-05-20
            • 2021-01-21
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多