2012-05-31 25 views
4

當我嘗試編譯我的iPhone應用程序並在模擬器中運行它時,出現抱怨未定義符號的錯誤。 所有這些符號都對應於包含在我的項目中並且不缺少的類。當頭文件沒有丟失時在xcode中獲取錯誤「架構i386的未定義符號」

例子:

"_OBJC_CLASS_$_SHKFacebook", referenced from: 
     objc-class-ref in FooAppDelegate.o 
     objc-class-ref in FooLandingPageViewController.o 
     objc-class-ref in FooAppDelegate.o 

但SHKFacebook.h沒有從項目丟失。

任何想法?

謝謝!

回答

3

我在這個項目中有多個Xcode目標,當我將這些文件添加到項目中時,我將它們添加到了錯誤的目標下,使得它們對我正在嘗試構建的目標不可見。

0

這聽起來對我來說,你的鏈接庫僅僅是爲arm平臺編譯的,而不是爲i386編譯的 - 如果你有源代碼,請嘗試一下clean/re-build?

1

SHKFaceBook.h是您的文件還是來自庫文件?

如果從庫中點擊您的項目目標並選擇Build Phases選項卡,然後選擇Link Binary With Library部分並確保添加了該庫。

如果SHKFaceBook.h不是來自庫,那麼如果相應的.m文件不存在,則包含.h文件的事實是無關緊要的。 如果.m文件已經在您的XCode項目中,然後從Build Phases選項卡中選擇Compile Sources並確保必要的文件在那裏。

僅供參考這是一個鏈接錯誤,鏈接錯誤與編譯錯誤不同。源文件可以僅使用標題進行編譯,但不能在沒有實際代碼的情況下進行鏈接和構建。頭文件不是代碼,它更像是對代碼中內容的描述。

相關問題