IOS開發筆記

Xcode構建自定義靜態庫(libname.ac++

小知識:Linux靜態庫*.a,動態庫*.so,window靜態庫*.lib,動態庫*.dlljson

1.  建立工程選擇iOS->Framework&Library->CocoaTouchStaticLibrary。xcode

2.  刪除新建工程時自動建立的.h .m文件,導入自定義頭文件及源文件。ui

3.  選擇菜單Product->Scheme->Edit Scheme->Run->Build Configuration設置成release(切記此步驟,否則構建的是debug版的.a文件,其它工做引入該靜態庫時會報Undefined symbols for architecture i386錯誤)。debug

4.  選擇不一樣設備類型分別構建真機(iOS Device)及模擬器(iPhone 6/iPad2/iPhone4s等)靜態庫文件(執行build後可在Products下面看到libname.a文件,黑色表示生成成功,紅色未生成)。code

 

Xcode項目導入第三方開發庫ip

1.  選擇項目中的工程文件,設置工程屬性General->Linked Frameworks and Libraries-> + ->Add Other… ->選擇第三方靜態庫文件(.a)。開發

2.  設置頭文件搜索路徑,設置工程屬性 Build Settings->Search Paths->Head Search Paths-> + ->設置第三方庫頭文件目錄。it

 

使用lipo指令io

1.  查看靜態庫模塊的體系結構(終端->cd到.a文件所在目錄 -> lipo -info 靜態庫.a);

2.  合併模擬器及真機通用靜態庫(終端-> lipo -create 模擬器靜態庫所在路徑/靜態庫.a 真機靜態庫所在路徑/靜態庫.a -output 通用靜態庫輸出路徑/靜態庫.a);

 

注意事項:

1.當靜態庫模塊使用到C++11等一些特殊的語音特性時或該模塊有引用其它外部庫且外部庫用到C++11等特性時,構建靜態庫及使用該靜態庫的模塊都得統一設置C++編譯選項,如json庫就有用到C++11特性(工程屬性->Build Settings->Apple LLVM 6.1 - Language - c++ -> C++ Language Dialect 及C++ Standard Library);

2.在目標工程若添加同一靜態庫幾回,記得清除未使用到的靜態庫的鏈接路徑(工程屬性->Build Settings -> Search Paths ->Library Search Paths ),xcode搜索靜態庫.a文件的方法是從上往下查找庫路徑列表;

相關文章
相關標籤/搜索