iOS 動態庫和靜態庫

2021-09-11 12:25:40 字數 950 閱讀 3642

一、簡介

靜態庫和動態庫的存在形式

1.靜態庫:.a 和 framework

2.動態庫: .dylib、.tdb 和 .framework

複製**

靜態庫和動態庫在使用上的區別

了解裝置的架構

iphone4s-ipnone5:i386

iphone5s-iphone7 plus:x86_64

真機:iphone3gs-iphone4s:armv7

iphone5-iphone5c:armv7s

iphone5s-iphone7 plus:arm64

支援armv7的靜態庫可以在armv7s上正常執行(armv7 相容armv7s)

複製**

常用終端命令

// 檢視靜態庫支援的cpu架構

# lipo -info 靜態庫路徑

lipo -info libname.a(或者libname.framework/libname)

// 合併靜態庫

# lipo -create 靜態庫存放路徑1  靜態庫存放路徑2 ...  -output 整合後存放的路徑

lipo  -create  libname-armv7.a   libname-armv7s.a   libname-i386.a  -output  libname.a

// 靜態庫拆分

# lipo 靜態庫原始檔路徑 -thin cpu架構名稱 -output 拆分後檔案存放路徑

# 架構名為armv7/armv7s/arm64等,與lipo -info 輸出的架構名一致

lipo  libname.a  -thin  armv7  -output  libname-armv7.a

複製**

動態庫和靜態庫

本文主要解決以下幾個問題 1 為什麼要使用庫?2 庫的分類 3 建立自己的庫 或許大家對自己初學linux時的情形仍記憶尤新吧。如果沒有乙個能較好的解決依賴關係的包管理器,在linux下安裝軟體將是一件及其痛苦的工作。你裝a包時,可能會提示你要先裝b包,當你費盡心力找到b包時,可能又會提示你要先安裝...

動態庫和靜態庫

先抄一段 windows下的動態庫和靜態庫區別解釋,其實linux下意義一樣的,不過字尾名有些區別 靜態庫 在編譯的時候載入生成目標檔案,在執行時不用載入庫,在執行時對庫沒有依賴性。動態庫 在目標檔案執行時載入,手動載入,且對庫有依賴性。兩者區別 一,靜態庫的使用需要 1 包含乙個對應的標頭檔案告知...

動態庫和靜態庫

簡單的說,使用動態庫就是在鏈結的時候,不會將動態庫的 鏈結到可執行檔案中,而是採用symbol的方式。使用靜態庫,生成可執行檔案的時候,會將靜態庫的 鏈結到可執行檔案中。這樣,動態庫體積會很小,並且可以,依賴於更新的動態庫,但是,缺點是不穩定。靜態庫會更加穩定,但是體積會很大。靜態庫 就是多個目標檔...