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

第二章 编译和链接

作者: 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

相关文章

  • 2 编译和链接

    第二章 编译和链接词法分析语法分析语义分析中间语言生成目标代码生成与优化链接器 第二章 编译和链接 平时我们使用的...

  • 第二章 编译和链接

    预处理(prepressing) 编译(compilation) 汇编(Assembly) 链接(Linking)...

  • 第二章 编译和链接

    2.1 被隐藏了的过程 ide一般将编译和链接的过程一步完成,通常将这种编译和链接合并到一起的过程叫构建 从代码变...

  • 编译和链接

    编译和链接 预处理 编译 汇编 链接 预处理(prepress) 处理#开头的预编译指令。 #include:包含...

  • 编译和链接

    作为刚毕业没多久的非计算机学院出身的工科生,误打误撞的变成一个程序猿,因基础知识很薄弱,在此记录一些学习的过程。...

  • 编译和链接

    (摘自《程序员的自我修养》) 1. 被隐藏了的过程   当我们使用gcc来编译一个程序时,例如   运行结束后会生...

  • 编译和链接

    摘自《程序员自我修养》 对于平时的应用程序开发,我们很少关注编译和连接过程,因为通常的开发环境都是流行的集成开发环...

  • 修养 第二章 编译 和 链接

    所有这一张中的示例代码,以 Hello World 和 hello.c 为基准2.1 被隐藏了的过程GCC 编译过...

  • scons

    第一章:编译和安装SCons第二章:简单编译第三章:编译相关的一些事情第四章:编译和链接库文件第五章:节点对象第六...

  • xcode 编译 系统 深入学习(2)(待续)

    编译(通常我们说的编译包括编译和链接)报错 知识要点: 我们知道编译型语言,源文件必须经过编译(build)和链接...

网友评论

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

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