没有找到i386架构的Facebook符号

时间:2011-08-29 14:29:39

标签: iphone objective-c ios facebook linker-errors

尝试在xcode 4中编译项目时出现以下错误(在xcode 3.x中正常工作)

    Undefined symbols for architecture i386:
  "_OBJC_CLASS_$_FBSession", referenced from:
      objc-class-ref in View1Controls.o
  "_OBJC_CLASS_$_FBLoginDialog", referenced from:
      objc-class-ref in View1Controls.o
  "_OBJC_CLASS_$_FBRequest", referenced from:
      objc-class-ref in View1Controls.o
  "_OBJC_CLASS_$_FBStreamDialog", referenced from:
      objc-class-ref in View1Controls.o
ld: symbol(s) not found for architecture i386
collect2: ld returned 1 exit status

任何人都可以解释什么是错的?我确定我已经正确导入了头文件..

谢谢,

杰克

4 个答案:

答案 0 :(得分:7)

假设具有这些功能的库包含在Xcode项目中,当库未与二进制可执行文件链接时会发生此错误。将旧项目升级到较新版本的Xcode时会发生这种情况。

要修复它,请导航到Xcode中的项目概述。单击目标。单击Build Phases。展开“链接二进制文件库”列表。如果未列出库,请单击“+”,然后添加相应的库。

答案 1 :(得分:1)

您缺少导致您看到的链接器错误的库/框架。我不确定哪个框架与Facebook功能相关联,它可能是与网络相关的一般框架。让我看看我是否能找到你需要的东西。

编辑:您的项目中是否包含Foundation框架? Facebook网站可能会提到您需要的网站吗?

答案 2 :(得分:0)

我不与Facebook合作,但这是我的想法: 这是一个链接器错误,而不是编译器错误(如果未导入标头,则会出现错误)。你导入了正确的框架吗?并确保XCode告诉编译器链接到正确的库?

答案 3 :(得分:0)

它与链接器错误有关。所以只需从项目中删除facebook框架并拖动新框架。

  • 删除现有的facebook框架
  • 将FacebookSDK.framework文件夹从SDK安装文件夹拖到项目的“框架”部分