添加第三方類庫造成的linker command failed with exit code 1 (use -v to see invocation)的錯誤調試


linker command failed with exit code 1 (use -v to see invocation)這個錯誤貌似遇見並不止一次,當我想用某個第三方類庫的時候(如SBJson),我直接把類庫文件copy到工程目錄里面,然后一編譯就出現這樣錯誤(並不是一定會出這樣錯誤),開始以為是網上下載的類庫本身問題,所以重新找類庫或者其他方式將它添加進去,只要不出錯就行,也一直沒有深入了解根本問題,今天在給工程添加一個FMDB(SQLIte第三方類庫)文件編譯時又出現這種錯誤,一開始以為工程問題,但是新建工程后還是出現這個問題,經過網上查找,得到了解決辦法;

 

 

[cpp]  view plain copy
  1. Undefined symbols for architecture i386:  
  2.   "_OBJC_CLASS_$_FMDatabase", referenced from:  
  3.       objc-class-ref in ViewController.o  
  4. ld: symbol(s) not found for architecture i386  
  5. clang: error: linker command failed with exit code 1 (use -v to see invocation)  



 

在網上得到解決辦法是:

在工作左邊導航欄Target-->Build Phases-->compile Sources中,第三庫庫的所有.m文件都添加到里面,然后編譯通過了;

 

 

添加.m文件

 

根據對比可以看見 in FMDBTest,FMDBTest的Target里添加進去了了一些.m文件

 

對於以上錯誤,根據網友解答我的理解是

我們在使用這些第三方類庫文件時直接將其拖拽到工程之中,編譯的的時候Xcode也沒有自動引用,所以造成這樣錯誤,這就需要我們手動添加。假如我們在工程中新建某個文件就不會出現這樣問題;


免責聲明!

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



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