iOS開發(fā)——靜態(tài)庫的導入和頭文件路徑的設置

大家在開發(fā)過程中,免不了要用到一些第三方或者是別人寫好的一些Demo,這時就經(jīng)常會用到別人寫的一些靜態(tài)庫(.a文件)和n多個頭文件(.h文件),這些文件不是簡單地把它們拉到自己的工程里面就行的,還要設置一些路徑。

在使用別人寫的東西的時候,經(jīng)常會出現(xiàn)各種各樣變態(tài)的問題,這時最忌就是心浮氣躁,一定要靜下心來,慢慢解決。一般要經(jīng)過以下步驟:

1.保證你已經(jīng)把別人寫的文件全部拉到你的工程里了。因為別人的工程運行都沒問題,那你把別人寫的東西拿來用也是能用的,只是可能沒有把別人的文件全部(或者是你要用的那些)拉到自己的工程或者缺少某些配置而已,不用擔心別人的東西不能用。

2.看看別人都用了哪些庫,去到Frameworks文件里面看,如下圖


大家可能看到了有.a的文件了,著就是靜態(tài)庫,但是在此步驟里,我們先不管這些庫,我們先把除了.a以外的其它庫添加進去。具體過程如下:
2.1點選你的工程


2.2在右邊選擇Build Phases->Link Binary With Libraries


2.3點擊下面的+號,在輸入框輸入關鍵字,再單擊你需要的庫,選擇右下角的Add即可


3.現(xiàn)在說說頭文件路徑的設置。如下圖,我的工程里面明明是有這個文件的,卻提示我說找不到,那是因為路徑不對,它確實找不到,所以我們需要為它設置它能找到的路徑。


3.1首先在桌面新建一個文件夾,我把它命名為include。然后把所有的.h的頭文件拷貝到文件夾里去。在工程里Show in Finder ,把include拷貝到工程里。


3.2然后再按住include文件夾,拖到工程里去,選擇每個分組的第一個選項,finish


3.3點擊左列表最上面的工程,再選擇右邊的Build Settings,在輸入框輸入“sea”,就可以看到下面有Search Paths->Header Search Paths


3.4在工程里選擇include文件夾,Show in Finder,然后再回到Header Search Paths頁面,雙擊Header Search Paths的右邊,會彈出一個很大的輸入框


3.5把步驟3.4 Show in Finder出來的include文件整個文件夾拖進輸入框,這樣頭文件的路徑就設置完了,運行一下,剛才的錯誤沒了。


4.在ARC出來之后,還會出現(xiàn)下面的問題


那是因為你的工程是支持ARC的,別人的是以前寫的,還不支持ARC。但是我們可以修改一下,使它們能互相兼容。
4.1再次回到最左邊,選擇工程,在右邊選擇Build Phrases ,可以看到有Compile Sources選項,點開它,找到剛才報錯的文件,雙擊此文件的右邊,也會打開一個很大的輸入框,在此輸入-fno-objc-arc就行了。如果文件較多,也可以在搜索框里面輸入關鍵字搜索


5.現(xiàn)在說一說靜態(tài)庫的導入。如果你的工程出現(xiàn)下面的Library not found for


這種情況,那就是缺少類庫或者類庫路徑不對的問題了,如果你確保你已經(jīng)把所有除了.a以外需要的庫都按照步驟2導入了,現(xiàn)在就是要導入靜態(tài)庫了(.a文件)如下圖,一塊黑黑的東西


5.1在桌面上新建文件夾,我命名為lib.a。然后把所有的.a文件拷貝到lib.a文件夾,再把此文件夾拖到工程里去,和步驟3.1,3.2新建include文件夾類似。
5.2點擊左列表最上面的工程,再選擇右邊的Build Settings,在輸入框輸入“sea”,就可以看到下面有Search Paths->Library Search Paths


5.3在工程里面選擇lib.a文件夾Show in Finder ,再去到Library Search Paths頁面,雙擊此項的右邊,會彈出一個很大的輸入框,把整個lib.a文件夾拖到輸入框里去,這樣靜態(tài)庫就添加完成了,運行一下,發(fā)現(xiàn)錯誤消失了。


附錄:
1.Library not found for …(A)
1.1先在工程里查找是否存在A,如果是紅色的,則刪除
1.2如果A=AFNetworking,則在 Library Search Paths設置(有時候用coocpods導入時會發(fā)生這種情況),如下圖

這里寫圖片描述

1.3可能缺少某些類庫,查看官方的接入文檔說明

最后,我再次強調一下,一定要保證你已經(jīng)把你需要的文件全部拖到了你的工程里面去,我在使用別人的Demo的時候就曾經(jīng)深受其害,明明已經(jīng)做足步驟了,總是提醒說找不到某某文件,那時還在抱怨別人的東西不能用,后來休息了一下,靜下心來。慢慢地按照系統(tǒng)的提示去找,發(fā)現(xiàn)我真的沒把那文件拖進工程,對此我對我的抱怨表示愜意。

祝各位朋友工作生活愉快,能堅持在這行業(yè)里走下去,也希望我的這份東西對你們有幫助。

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容