一 前言
近日沒事兒幹,就在看了下關於靜態庫打包的相關資料(僅供入門,大神繞道),所謂庫其實就是程式碼塊的集合,可簡單的分為開源庫,和閉源庫(顧名思義就是開源和不開源),今天學的.a屬於閉源庫,因為.a實際上是一個二進位制集合,庫還可以分為靜態庫和動態庫,.a,framework屬於靜態庫(自己建立的),以".dylib"或者“.framework”為檔案字尾名結尾為動態庫(比如系統的)額.....好像跑題了,開始我們正式的入門吧!GO~
二 入門
建立一個test_HelloWord(這裡繼承的是NSObject),沒有編譯的.a是紅色的(無效,不存在的檔案)
三 注意點
下面重點來了,敲黑板!!!!
architecture 字面意思 只編譯活躍的架構 NO就是所有,YES是隻有當前活躍的 ,這裡選擇所有(debug,release)
然後編譯就可以了,注意不是執行,分別選擇真機和模擬器(如果你不選模擬器,當然也可以)
既然拿到了庫是不是就成功了呢?如果只支援一種到這裡是結束了,可以下課了,但是如果想同時支援真機和模擬器需要將兩個庫合併
在終端使用 lipo 命令
lipo -info 庫的路徑 -----------檢視庫支援什麼架構
lipo -create 要合併的庫1 要合併的庫2 -output合併後的靜態庫
例子:lipo -create lipo -create /Users/apple/libtest_HelloWord.a /Users/apple//libtest_HelloWord.a -output helloLib.a (合併檔案helloLib.a)
這樣合併出來的.a靜態庫就會支援所有的編譯環境了。
之後再加上所有的.h檔案就可以使用了。
四 測試
包含標頭檔案,並呼叫helloWord方法。
五 總結
很簡單的一個靜態庫。程式設計是一條漫長的道路,前進的路上有你會更佳精彩,謝謝大家!