链接器错误:未定义的符号,未找到符号

时间:2012-04-27 20:20:04

标签: ios xcode linker

我收到这些Apple Mach-O Linker错误,我不知道如何阅读这些内容。在我的项目中导入“CLCredentialHeader.h”和“CLCredentialHeader.m”后出现这些错误。

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

3 个答案:

答案 0 :(得分:18)

确保SFHFKeychainUtils.m出现在构建目标的“编译源”构建阶段中。有时,在Xcode中向项目添加文件不会将所有实现文件添加到适当的目标。

答案 1 :(得分:9)

当我从另一个项目中拖放一个类而忘记在弹出的窗口中标记“添加到目标”时,我有时会得到这个。我认为这是一个非常合理的问题。错误消息也不是很直观。在XCode点击项目时,解决方案很简单,点击“Build Phases”并打开“Compile Source”然后说“+”。这里有些图片说的比所有单词更多。

因此,如果错误看起来像这样,它告诉我DataAccess类是未定义的。

enter image description here

我认为这是一个我拖入项目的课程。我将DataAccess.m添加到我的项目

enter image description here

最初我可以通过标记“添加到目标”来避免它

enter image description here

答案 2 :(得分:1)

如果上述答案对您不起作用,请检查您是否添加了安全框架。 如果没有,则将其添加到目标的构建阶段部分。 应该没问题:)