美文网首页
常见的Mach-O文件类型

常见的Mach-O文件类型

作者: 我的昵称在不在 | 来源:发表于2018-01-27 11:27 被阅读0次

    1.

    .c -> .o ->可执行文件

    2.

    • MH_OBJECT
      * 目标文件(.o)
      * 静态库文件(.a),静态库其实就是n个.o合并在一起
    • MH_EXECUTE:可执行文件
    • MH_DYLIB:动态库文件
      * .dylib
      * .framework/xx
    • MH_DYLINKER:动态链接编辑器
      * /usr/lib/dyld
    • MH_DSYM:存储着二进制符号信息的文件
      * .dSYM/Contents/Resources/DWARF/xx(常用于分析APP的崩溃信息)

    3.Universal Binary(通用二进制文件),也叫Fat Binary(胖二进制文件)

    • 包含多种架构文件
    • 查看文件类型:lipo -info [文件]
    • 拆分不同架构文件:lipo [文件] -thin [armv7/armv64] -output [生成的文件名]
    • 合并不同架构文件:lipo -create [架构1文件] [架构2文件] -output [生成的文件]

    4.Mach-O基本结构

    一个Mach-O文件包含3个主要区域
    
        1.Header
            文件类型,目标架构类型等
        2.Load commands
            描述文件在虚拟内存中的逻辑结构、布局
        3.Raw segment data
            在Load commands中定义的Segment的原始数据
    

    5.用otool查看Mach-O文件信息

    也可以用MachOView工具(https://github.com/gdbinit/MachOView)

    相关文章

      网友评论

          本文标题:常见的Mach-O文件类型

          本文链接:https://www.haomeiwen.com/subject/yllnaxtx.html