MachO文件
官方介紹總共有11種格式! 是 Mach Object的縮寫,是Mac\iOS 上用于存儲程序,庫的標(biāo)準(zhǔn)格式!
常見格式
1.可執(zhí)行文件
2.Object文件
.o文件(目標(biāo)文件)
.a文件,靜態(tài)庫文件.其實就是N個.o文件的集合
xcode創(chuàng)建c語言文件

c文件.png
終端通過命令:
clang -c cfile.c編譯cfile.c文件即可得到編譯后的目標(biāo)文件
編譯后.png
再通過命令
file cfile.o查看cfile.o文件的類型cfile.o: Mach-O 64-bit object x86_64,cfile.o為Mach-o文件。.o文件通過命令
clang cfile.o編譯為可執(zhí)行文件a.out
可執(zhí)行文件.png
也可以通過命令
clang -o test1 cfile.c一步把cfile.c編譯成名為test1的可執(zhí)行文件。
3.DYLIB:動態(tài)文件庫
dylib
framework
4.動態(tài)連接器
5.DYSM
Macho文件的拆分和整合
在iOS10 release模式下生成的Macho文件會包涵armv7和arm64兩個Macho文件
通過命令lipo 002--可執(zhí)行文件 -thin armv7 -output macho_armv7和002--可執(zhí)行文件 -thin arm64 -output macho_arm64拆分成armv7和arm64 Macho文件。
同樣也可以通過命令lipo -create macho_armv7 macho_arm64 -output machO_v7_64把armv7和arm64整合成一個Macho。