靜態庫的製作

2021-07-11 07:55:36 字數 959 閱讀 5235

靜態庫和動態庫:

1.靜態庫:.a和.framework

@1.鏈結時,靜態庫會被完整地複製到可執行檔案中,被多次使用就有多分冗餘

@2.核心**封裝,不讓別人看

lipo -info +靜態庫 檢視靜態庫支援哪些架構

i386:iphone模擬器 3gs ->4s

x86_64:iphone模擬器 5s -> 6p

arm7:iphone 3gs ->4s

arm7s:iphone 5 ->5c

arm64:iphone 5s - 6p

debug和release版本

靜態庫檔案版本(4種)

1.真機-debug版本 2.

真機-release版本 3.

模擬器-debug版本 4.

模擬器-release版本

除錯版本(debug版本) vs 發布版本(release版本)

- 除錯版本會包含完整的符號資訊,以方便除錯

- 除錯版本不會對**進行優化

- 發布版本不會包含完整的符號資訊

- 發布版本的執行**是進行過優化的

- 發布版本的大小會比除錯版本的略小

- 在執行速度方面,除錯版本會更快些,但不意味著會有顯著的提公升

合併靜態庫.a檔案

lipo -create debug-iphoneos/libtools.a debug-iphonesimulator/libtools.a -output libtools.a

@1.合併的好處,開發過程中既可以在真機上除錯又可以在模擬器上除錯

@2.合併.a壞處,如果靜態庫太大,合併打包後,會非常大,因此很多第三方的靜態庫的.a是區分版本的

@3.今後在使用靜態庫時要注意版本

2.動態庫:.dylib和.framework

@1.鏈結時不複製,程式執行時由系統動態載入到記憶體,供程式呼叫,系統只載入一次,多個程式共用,節省記憶體

靜態庫的製作

最近公司需要把一套流程封裝起來,採用了靜態庫的做法,順便記錄下靜態庫的製作過程。新建工程選擇framework,當然選擇static library也可以,static library的.a h 資源檔案就相當於framework,尤其是資源檔案,如果用static library,還需單獨供給使用...

靜態庫製作

靜態庫 要被包含到源程式中的庫 優點 執行速度快 缺點 占用系統資源比較多 使用的場合 對時間要求很高的場合 靜態庫的製作 1 把所有的源程式 c檔案 製作成目標檔案 o 檔案 gcc c mul.c o mul.o gcc c sub.c o sub.o gcc c add.c o add.o 2...

靜態庫和動態庫的製作

在現實工作中,要實現 的共享但又不想讓別人知道自己的源 那我們該怎麼做呢?我們可以利用動態庫來保護自己寫的源 不被別人竊取。lib目錄檔案 makefile cc gcc 用ar命令對目標檔案歸檔 格式為ar rcs 生成靜態庫檔案 libtest.a myalib.o ar rcs libtest...