1. 程式人生 > >完美解決:"library not found for

完美解決:"library not found for

分析原因,解決問題

在Xcode編譯的時候,可能會遇到報這個錯誤"library not found for - ",這是為什麼呢?

由於我們在專案中使用了一些第三方的庫,如百度的靜態庫。當Xcode在編譯的時候卻找不到這個庫,所以我們要讓Xcode知道這個庫檔案在哪裡,這樣在編譯的時候就可以輕鬆的找到庫了。

出錯資訊

解決方法:
獲取 庫檔案所在的檔案路徑 ,新增到Target的Build Settings介面,如圖:

解決方法

若上述方法還未能解決,以下共有3種方法

  • 方法一:點選 XCode 工程檔案,在 Build Phases 中檢視 “ Link binary With Libraries” 如果不出所料,你應該能發現有一到數個的條目是用紅色字型來顯示的。 說明這些被工程引用的這些檔案,其物理檔案已經不處於之前所記錄的地方了。 這種情況下,右鍵點選紅色條目,選擇 “Reveal in Project Navigator”, 此時大抵能在左側欄中定位到缺失檔案所在的路徑,接下來就好辦了,找到缺失的檔案,挪回它應該待的地方。

  • 方法二: 在工程的 Target 中選中要執行編譯的某個target, 然後 “get info”,開啟 Build 設定頁面,在 “ Library Search Path” 中新增缺失連結庫的所在資料夾的路徑。

  • 方法三:關閉Xcode,在控制檯開啟到工程目錄,用pod install 命令重新安裝,成功後再開啟Xcode編譯專案。

常見問題的處理方法

  • 總結1:library not found for -XXX 的問題有可能是你的某個庫的連線引用有問題,解決的辦法就是在專案的target裡,選中Link Binary With Libraries 裡的.a或framework 取消再加入,就可以了。

  • 總結2:warning:directory not found option 的問題可能是framework search paths 還有Library Search Paths 裡面並沒有這個路徑,刪除即可。

  • 總結3:duplicate就是重複的意思,那麼看程式碼 要刪除重複的openUDID,以及libwoa_two和sbjson衝突了,刪除sbjson的點m即可.