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

來源:互聯網
上載者:User

標籤:blog   http   color   使用   strong   width   

 

本文轉載至 http://blog.csdn.net/duxinfeng2010/article/details/8265273

 

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

 

 

[cpp] view plaincopy
  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也沒有自動引用,所以造成這樣錯誤,這就需要我們手動添加。假如我們在工程中建立某個檔案就不會出現這樣問題;

 

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.