【问题标题】:Undefined symbols for architecture i386/armv7 [cocoapods]架构 i386/armv7 [cocoapods] 的未定义符号
【发布时间】:2014-11-26 08:18:00
【问题描述】:

使用$ pod install 命令安装自定义 pod 后,我无法构建项目,因为出现如下错误(在我的 Xcode 上,错误是关于 armv7,在另一个 Xcode 上,错误是关于 i386 架构):

Undefined symbols for architecture armv7:
  "_generateCombMatrix", referenced from:
      -[className method:] in libPods-Bot-betting-core.a(ClassName)
  "_debugLog", referenced from:
  -[ClassName Method:] in libPods-Bot-betting-core.a(className.o)
  -[ClassName method] in libPods-Bot-betting-core.a(className.o)
  -[className method] in libPods-Bot-betting-core.a(className.o)
  -[className method:] in libPods-Bot-betting-core.a(className.o)
  -[className method:] in libPods-Bot-betting-core.a(className.o)
  -[className method] in libPods-Bot-betting-core.a(className.o)
  -[className method] in libPods-Bot-betting-core.a(className.o)
  -[className method] in libPods-Bot-betting-core.a(className.o)
  ...
  "_SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO", referenced from:
  -[className init] in libPods-Bot-betting-core.a(className.o)

错误中提到的文件位于项目 Pods 中,并且 libPods.a 库已正确链接到该项目。 这是调试时的 .xconfig 文件(发布时相同):

GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/betting-core"
OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/betting-core"
OTHER_LDFLAGS = -ObjC -l"Pods-Bot-betting-core"
OTHER_LIBTOOLFLAGS = $(OTHER_LDFLAGS)
PODS_ROOT = ${SRCROOT}/Pods

该库支持架构,如下面的屏幕所示:

【问题讨论】:

  • 库是否支持armv7 CPU 架构?
  • @trojanfoe 是的,我用截图编辑了第一篇文章。

标签: ios objective-c cocoapods armv7 i386


【解决方案1】:

今天遇到了类似的问题。我能够通过删除所有派生数据来解决该问题:Windows -> 项目 -> 选择您的工作区 -> 单击右侧“派生数据”旁边的“删除...”。

【讨论】:

    【解决方案2】:

    这是为我做的

    确保您的项目目标在构建设置的其他链接器标志中存在 $(inherited)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-29
      • 2011-09-19
      • 1970-01-01
      • 2011-08-14
      相关资源
      最近更新 更多