編寫通用的靜態庫 a檔案

2021-06-26 07:54:21 字數 1598 閱讀 8346

ios產生.a的靜態庫,比起.framework相對簡單了好些。

下面介紹一下具體生成步驟:

1、新建乙個framework&library庫。ios 下的cocoa touch static library。然後輸入product name 為libsql

2、把libsql.h和libsql.m刪除。匯入ocsqlite.h和ocsqlite.c(檔案見

3、修改scheme,設為release版本。

ok,選譯ios device編譯執行。成功後將在目錄的build/products/release-iphoneos/下產生乙個liblibsql.a檔案。

注,這裡產生的是真機使用的.a檔案。

選譯iphonesimulator 進行編譯一次,同樣會在build/products/release-iphonesimulator/下產生乙個liblibsql.a檔案。

這裡是虛擬機器使用的.a檔案。

下面來看一下這兩個檔案有什麼不同之處,使用lipo -info命令。

開啟終端。

進入到相應的目錄。

真機的:liblibsql.a檔案資訊。

input file liblibsql.a is not a fat file

non-fat file: liblibsql.a is architecture: armv7

如圖:

模擬器的:liblibsql.a檔案資訊。

input file liblibsql.a is not a fat file

non-fat file:  liblibsql.a  is architecture: i386

如圖:

如果使用真機和模擬器通用,則需要將這兩個檔案合併,使用命令lipo -create  ***x/liblibsql.a   ***xx/liblibsql.a  -output  libsql.a

同樣可以使用lipo -info 來檢視這個合併的libsql.a

可以看到architectures in the fat file: libsql.a are: i386  armv7

如圖:

ok,打包完成。這個靜態庫比起framework是不是簡單了許多呢。完工,如果想打包framework請參考:

iOS 合併 a檔案,製作通用靜態庫

lipo create sqy ios iphoneos libgameplusapi.a sqy ios iphonesimulator libgameplusapi.a output sqy ios libgamepus.a 當中sqy ios iphoneos libgameplusapi.a...

iOS 合併 a檔案,製作通用靜態庫

lipo create sqy ios iphoneos libgameplusapi.a sqy ios iphonesimulator libgameplusapi.a output sqy ios libgamepus.a 當中sqy ios iphoneos libgameplusapi.a...

靜態庫lib的編寫

最早在學習的時候,寫庫檔案比較少,所以有些記不清楚,今天寫下來以便以後的學習和複習。我寫乙個簡單的lib庫,正所謂知微見著,希望也能給大家帶來幫助。我使用的是vs2013編寫庫,首先建立乙個靜態庫的工程,如下圖所示 然後寫乙個標頭檔案命名為 lib.h 內容為 ifndef lib h define...