2011-08-29 47 views
3

我在嘗試編譯我在Xcode 4的項目時出現以下錯誤(在Xcode 3.x中工作得很好)Facebook的符號沒有找到i386架構

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 

誰能解釋什麼是錯?我敢肯定,我已經導入正確的頭文件..

感謝,

傑克

回答

7

假設具有這些函數的庫包含在Xcode項目中,當庫沒有與二進制可執行文件鏈接時會發生此錯誤。將舊項目升級到較新版本的Xcode時可能會發生這種情況。

要修復它,請導航到Xcode中的項目概述。點擊目標。點擊Build Phase。展開「鏈接二進制庫」列表。如果庫未列出,請單擊「+」並添加相應的庫。

1

你缺少庫/框架造成您看到的鏈接錯誤。我不確定哪個框架與Facebook功能相關,可能是與網絡相關的一般網站。讓我看看我能否找出你需要的。

編輯:你有你的項目中包含的基礎框架? Facebook網站是否可以提及您需要哪一個?

0

我不使用Facebook,但這裏是我的想法: 這是一個鏈接器錯誤,而不是編譯器錯誤(如果沒有導入頭文件,會出現這種錯誤)。你有沒有導入正確的框架?並確保XCode告訴編譯器鏈接到正確的庫?

0

它與鏈接器錯誤有關。所以,只需從項目中刪除Facebook框架,並拖動新的。

  • 刪除現有的Facebook的框架
  • 將FacebookSDK.framework從SDK安裝文件夾到你項目的框架部分文件夾
相關問題