1. 程式人生 > >iOS經典錯誤Undefined symbols for architecture XXX

iOS經典錯誤Undefined symbols for architecture XXX

首先宣告

因為我是在真機上編譯的專案,所以報錯的架構(CPU指令集)為arm64。

如果我們使用64位模擬器(iPhone simulators 5s 或更高版本)編譯或者執行專案,就會報以下錯誤:
Undefined symbols for architecture x86_64:

如果我們使用32位模擬器(iPhone simulators 5 或更低版本)編譯或者執行專案,就會報以下錯誤:
Undefined symbols for architecture i386:

我們可知:專案中如果用到了某個第三方靜態庫,但lib靜態庫或者framework靜態庫沒有被連結時,就會遇到Undefined symbols for architecture XXX這一類的錯誤。
原因

:編譯專案時,因為靜態庫沒有連結進工程,所以靜態庫就不會參與編譯,而專案某些檔案(.m檔案)又引用(或者說依賴)了靜態庫,所以自然會報錯,而報的錯就是經典的 Undefined symbols for architecture XXX這一類的錯誤。
解決方案:下次遇到這類問題,我們只需要在Linked Frameworks and Libraries 中新增指定的靜態庫即可!