完美解決:"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即可.

  • 還一種情況:
  •  
 我是pod第三方框架,發現部分如圖所示,他們的libxxx.a文件只在所屬文件夾,並沒有在Debug-iphonesimulator文件夾下,所以,系統報錯,提示:

當我把.a文件放到Debug-iphonesimulator文件夾下,系統就運行成功了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM