標籤:io ar os 使用 檔案 on 代碼 ef as
1、在shell終端中編寫.c或.m檔案,需要編譯成.o檔案(即gcc -c ***.c/***.m),即可產生***.o檔案2、在shell中輸入 ar crs lib***.a ***.o ,即可產生lib***.a庫檔案 3、在shell中輸入nm ./***.out,即可查看二進位檔案4、在shell終端中輸入lipo -info lib***.a檔案或者 file lib***.a檔案,如果輸出是X86,說明是MAC的指令集,如果輸出是ARM7、ARM64就是真機裝置(ios裝置)的指令集5、模擬器上啟動並執行程式不能在iOS裝置上運行,反之iOS裝置上啟動並執行程式也不能在模擬器上運行,因為模擬器使用X86指令集,真機裝置使用的是ARM7指令集6、在Xcode 6.1中,有3中方法包含第3方開原始碼引入工程: 第1中方式建立Cocoa Touch Static Library靜態庫類,產生 ***.a 庫檔案,在Xcode6.1的Preferences中Loccation位置,預設在/Users/apple/Library/Developer/Xcode/DerivedData路徑中,然後找到自己的工程名字,找到 ***.a 庫檔案即可,如果編譯是選擇的是模擬器,則產生的 ***.a 檔案預設是X86(Mac OS電腦)指令集,如果編譯時間選擇iOS裝置編譯,即產生的***.a就是ARM7或者ARM64指令集,也可以通過shell終端命令查看屬於何種指令集 第2種方方式是在有現成的開原始碼時,可把整個Xcode整個工程添加到當前項目工程中,可以修改開:原始碼,編譯時間自動更新 ***.a 檔案。注意上述方法:都需要在工程編譯設定(Building Setting)中指定***.h檔案路徑,在Build Phases中Link中添加 ***.a 檔案 第3中方式先建立Cocoa Touch FrameWork工程,即建立一個FrameWork架構,產生.framework檔案,然後在Build Phases中Link中添加 ***.framework 檔案7、在shell中可通過lipo -create lib***1.a lib***2.a -output lib***12.a ,其中 lib***1.a 代表選擇iOS真機裝置編譯的指令集, lib***2.a 代表選擇模擬器編譯的指令集,lib***12.a是把lib***1.a 和lib***2.a 封裝的結果,以後不管是模擬器還是真機都可以使用該庫檔案。
iOS指令集查詢技巧