美文网首页
第二章 编译和链接

第二章 编译和链接

作者: jinx1663 | 来源:发表于2018-07-24 17:25 被阅读0次

    预处理(prepressing)

      gcc -E hello.c -o hello.i
      cpp hello.c > hello.i
    

    编译(compilation)

      gcc -S hello.i -o hello.s
    

    汇编(Assembly)

      as hello.s -o hello.o
      gcc -c hello.s -o hello.o
    

    链接(Linking)

    静态链接: 模块的拼接过程

      ld -static crt1.o
    

    汇编器代替人工计算目标地址(Symbol)

    1. 地址和空间分配
    2. 符号决议
    3. 重定位

    PLT工作原理

    GOT表结构 PLT 动态重定位表 可重定位表结构
      ELF32_R_SYM(Elf32_Rel->r_info) = (Elf32_Rel->r_info) >> 8
      重定位项对应符号在符号表中的下标
      ELF32_R_TYPE(0x607) = 7,对应R_386_JUMP_SLOT

    相关文章

      网友评论

          本文标题:第二章 编译和链接

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