添加第三方類庫形成的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第三方類庫)文件編譯時又出現這種錯誤,一開始覺得工程問題,可是新建工程後仍是出現這個問題,通過網上查找,獲得瞭解決辦法;ios

[cpp] view plaincopyui

Undefined symbols for architecture i386:
"OBJC_CLASS$_FMDatabase", referenced from:
objc-class-ref in ViewController.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)code

在網上獲得解決辦法是:blog

在工做左邊導航欄Target-->Build Phases-->compile Sources中,第三庫庫的全部.m文件都添加到裏面,而後編譯經過了;get

添加.m文件it

根據對比能夠看見 in FMDBTest,FMDBTest的Target裏添加進去了了一些.m文件io

對於以上錯誤,根據網友解答個人理解是編譯

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

參考 http://blog.hsin.tw/2012/ios-dev-undefined-symbols-for-architecture-i386/下載

相關文章
相關標籤/搜索