昨天 De 了一個下午的 bug, google 了一堆網站仍然找不到問題的異常
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_CCSVFile_Stage", referenced from:
objc-class-ref in CGameManager.o
(maybe you meant: _OBJC_CLASS_$_CCSVFile_StageFlag)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
終於在晚上找到問題的產生原因了,一切都是 Xcode 造成的。 =..=
問題的產生主因之一,是因為我打算從其他的位置直接加入一個之前在其他 Project 就已經先行完成的共用 class,
而不是在目前的 Project 裡頭直接產生新的檔案的方式造成的。
![]() |
↑[圖一] 專案目錄畫面
|
準備把其他位置的 class 檔 “CCSVFile_Stage” 拉入此專案目錄當中。
![]() |
↑[圖二] 同時 將 CCSVFile_Stage.h & CCSVFile_Stage.m 檔拉進專案目錄
|
![]() |
↑[圖三] 檔案加入專案目錄之後
|
然後,慘案就此發生了。
![]() |
↑[圖四] Error Message
|
然後,終於在自行嘗試過很多種方式後將此一問題排除了。
問題是發生在 Xcode 這個 IDE 環境上! =..=
解決這個問題的方式是:使用先後順序的方式個別把檔案加入專案目錄當中,再來進行 Build 就能排除這樣的異常了。
※ 先拉 CCSVFile_Stage.h 再拉 CCSVFile_Stage.m;或是先拉 CCSVFile_Stage.m,再拉 CCSVFile_Stage.h 都不會再出現問題。
![]() |
↑[圖五] 通過考驗 ^^"
|
----
半天就這樣飛嚕 XD
------------------------------------------------------------------------------------------------
寫完上面這一些資料後,又重新搜尋一下異常訊息,結果找到了另一篇關鍵性的文章:
跟著他的步驟操作之後,進入的畫面長這樣子
![]() |
↑[圖六] 會被 Project 進行編譯的 implementation file
|
※ 再試著將檔案同時拉入專案目錄時,的確不會自動將檔案加入這個 List 當中;不過,依序加入的方式就會自動加入了。
沒有留言:
張貼留言