2012年4月13日 星期五

Xcode IDE 將舊有 class 檔案加入專案的 Bug



昨天 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 當中;不過,依序加入的方式就會自動加入了。



沒有留言:

張貼留言