程序员的自我修养[链接/装载/库] 第二章笔记

3人阅读 评论(0) 收藏 举报
分类:

被隐藏了的过程

  • 集成开发环境: Build:编译+链接

  • GCC编译Hello World程序

    $gcc hello.c
    $./a.out     

    预处理(Prepressing)

    编译(Compilation)

    汇编(Assembly)

    链接(Linking)

预编译

$gcc -E hello.c -o hello.i
  • 预编译预测主要处理的那些源代码文件中 以 # 开始的编译指令.
    • 将所有 #define 删除,展开宏定义
    • 处理所有条件编译指令
    • 删除所有注释
    • 添加行号和文件名标识
    • 保存所有 #pragma 编译指令,编译器要使用它们

编译

$gcc -S hello.i -o hello.s
  • 编译过程就是把预处理完的文件进行一系列语法分析 词法分析 语义分析 以及优化后生产相应的汇编代码文件.

汇编

$gcc -c hello.s -o hello.o 
  • 汇编器是将汇编代码转换为机器可以执行的指令
  • 汇编指令和机器指令一一翻译

链接


编译器做了什么

编译器就是将高级语言翻译成机器语言的一个工具.

  • 词法分析
  • 语法分析
  • 语义分析
  • 中间语言生成
  • 目标代码生成与优化

静态链接(模块拼装)

  • 链接的主要内容就是把各个模块之间的相互引用的部分处理好.使得各个模块之间能够正确的链接.

  • 链接过程主要包括

    • 地址和空间分配

    • 符号决议
      名称决议/符号绑定/名称绑定
      决议:更倾向于静态链
      绑定:更倾向于动态链接

    • 重定位

查看评论

读书笔记之《程序员的自我修养——链接、装载与库》

从编译,链接到运行,程序员应该了解自己所写的代码最终是怎么成为程序,又怎样在计算机上运行起来的。...
  • liyuefeilong
  • liyuefeilong
  • 2015-09-20 13:47:36
  • 1245

程序员的自我修养-链接装载与库笔记

花了近一个礼拜的时间算是把这本书看完了大部分的内容,因为工作接触的是linux有关windows的部分没有去看。个人觉得如果要做底层的话,这本书不得不看,看完之后虽然没有全部理解,但是对于我之前的知识...
  • Destihang
  • Destihang
  • 2016-08-01 22:59:53
  • 1819

《程序员的自我修养—链接、装载与库》

《程序员的自我修养—链接、装载与库》 ——读书笔记 2013年11月18日 2.1 被隐藏了的过程 预编译(cpp or gcc -E)-> 编译(cc1包含了预编译 or gcc -...
  • HuiyuYang_fish
  • HuiyuYang_fish
  • 2013-11-18 19:22:34
  • 3045

程序员的自我修养—链接、装载与库(全书带目录).pdf

  • 2015年04月21日 11:19
  • 36.06MB
  • 下载

程序员的自我修养—链接、装载与库pdf

下载地址:网盘下载   内容简介编辑《程序员的自我修养:链接、装载与库》对装载、链接和库进行了深入浅出的剖析,并且辅以大量的例子和图表,可以作为计算机软件专业和其他相关专业大学本科高年级学生深入学习系...
  • cf406061841
  • cf406061841
  • 2018-02-07 12:16:18
  • 53

程序员的自我修养 ---链接、装载与库 (mobi)

  • 2017年10月25日 09:55
  • 5.12MB
  • 下载

程序员的自我修养—链接、装载与库.pdf

  • 2013年03月08日 15:53
  • 30.39MB
  • 下载

《程序员的自我修养-链接,加载和库》读后感

五月份读的书是《程序员的自我修养-链接,加载和库》,这本书很早以前就听说过他的dam...
  • u012501459
  • u012501459
  • 2014-06-03 10:44:40
  • 1203

程序员的自我修养--链接、装载与库(高清带完整书签版).pdf

  • 2017年11月14日 14:23
  • 33.58MB
  • 下载

进阶之路 程序员的自我修养 链接、装载与库详细版

  • 2017年12月05日 10:06
  • 29.21MB
  • 下载
    个人资料
    持之以恒
    等级:
    访问量: 1407
    积分: 146
    排名: 110万+