我下載了音頻編解碼器的C庫,我將其編譯並添加到我的項目中。架構armv7的未定義符號:用於外部C庫
現在,我每次嘗試使用它時,都會給我一個架構armv7的未定義符號:當我嘗試調用庫的某個方法時發生錯誤。
這是什麼問題?我需要編譯armv7特定的庫嗎?
我下載了音頻編解碼器的C庫,我將其編譯並添加到我的項目中。架構armv7的未定義符號:用於外部C庫
現在,我每次嘗試使用它時,都會給我一個架構armv7的未定義符號:當我嘗試調用庫的某個方法時發生錯誤。
這是什麼問題?我需要編譯armv7特定的庫嗎?
你似乎已經建立了您的XCode項目,從而爲編譯兩者的armv7
和armv7s
架構(注意,小號末)。但是,C庫的項目僅編譯爲armv7
。
要修復此問題,請更改庫項目,以便它也針對兩種體系結構進行編譯,或者將應用程序項目更改爲僅編譯爲armv7
。
我會去第二個選項,因爲目前不需要armv7s
支持,只有極少數設備可以使用它。
更新:
如果你獲得了模擬器相同的消息爲好,那麼你的庫項目不編譯「I386」沒有(這是需要僅模擬器)。它表明你的C庫項目根本沒有設置用於編譯多個體繫結構。所以第二個選項(不使用模擬器)是最簡單的方法。
它發生與armv7相同,我如何編譯它爲那些拱? –
我想你需要分析* configure *和* make *正在做什麼。看來他們爲你的Mac編譯庫,而不是爲iPhone或iPhone模擬器編譯。你有任何文件表明支持iPhone? – Codo
請貼完整messgae錯誤 – Deepesh
未定義的符號體系結構armv7s: 「_opus_encoder_create」,從引用: - 在ViewController.o –
[視圖控制器的viewDidLoad]爲它編爲ARMv7的? – Sulthan