软件调试笔记24
来源:互联网 发布:一生娱乐网源码 编辑:程序博客网 时间:2024/06/05 17:08
一个源程序,首先会见过编译器compiler编译为等价的汇编语言模块,再经过汇编器assembler产生出与目标平台一致的机器码模块。尽快这个机器码模块包含的指令已经可以被CPU执行,但其中可能还包含没有解决的unresolved的名称和地址引用,因此需要链接器linker解决这些问题,并产生出符合目标平台要求的可执行模块。当程序执行时,操作系统的加载器loader会解读链接器记录在可执行模块的格式信息,将程序中的代码和数据布置在内存中,成为真正可以执行的内存映像。
编译器和汇编器做的都是翻译工作,以目标代码即机器码为分界,可以把程序的构建过程分为编译和链接两个阶段。
链接器:
链接器主要职责是将编译器产生的多个目标文件合成为一个可以在目标平台下执行的执行映像,目标平台即运行环境 - CPU和操作系统。比如WINDOWS,链接器应根据WINDOWS操作系统定义的可执行文件格式来产生可执行文件,即PE(portable executable)格式的执行映像文件。
要产生一个PE格式的可执行文件,链接器典型任务如下:
加载器:
阅读全文
0 0
- 软件调试笔记24
- 软件调试笔记
- 软件调试 笔记1
- 《软件调试》笔记
- 软件调试笔记1
- 软件调试笔记2
- 软件调试笔记3
- 软件调试笔记4
- 软件调试笔记5
- 软件调试笔记6
- 软件调试笔记7
- 软件调试笔记8
- 软件调试笔记9
- 软件调试笔记10
- 软件调试笔记11
- 软件调试笔记12
- 软件调试笔记13
- 软件调试笔记14
- java获取当前class文件所在路径
- 视频相关知识积累文章阅读全集:一切始于未知
- 一段html现在文字跑马灯实现
- 一个简单的成绩系统
- 移动web点5像素的秘密(转)
- 软件调试笔记24
- C语言:求Fibonacci数列的前n项和
- css3中的outline,box-shadow和user-select总结
- javaWeb开发之MySQL和Cookie的使用练习中遇到的一些问题及解决
- lua里的迭代器
- 你所不知道的21个云服务器应用实践———云计算综合入门指南
- mysql 多表查询
- hadoop 队列 执行 引擎
- 你有一条linux命令学习之解压缩.tar .gz .xz .bz .zip