尝试在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
任何人都可以解释什么是错的?我确定我已经正确导入了头文件..
谢谢,
杰克
答案 0 :(得分:7)
假设具有这些功能的库包含在Xcode项目中,当库未与二进制可执行文件链接时会发生此错误。将旧项目升级到较新版本的Xcode时会发生这种情况。
要修复它,请导航到Xcode中的项目概述。单击目标。单击Build Phases。展开“链接二进制文件库”列表。如果未列出库,请单击“+”,然后添加相应的库。
答案 1 :(得分:1)
您缺少导致您看到的链接器错误的库/框架。我不确定哪个框架与Facebook功能相关联,它可能是与网络相关的一般框架。让我看看我是否能找到你需要的东西。
编辑:您的项目中是否包含Foundation框架? Facebook网站可能会提到您需要的网站吗?答案 2 :(得分:0)
我不与Facebook合作,但这是我的想法: 这是一个链接器错误,而不是编译器错误(如果未导入标头,则会出现错误)。你导入了正确的框架吗?并确保XCode告诉编译器链接到正确的库?
答案 3 :(得分:0)
它与链接器错误有关。所以只需从项目中删除facebook框架并拖动新框架。