三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

揭秘编译与链接的幕后过程

揭秘编译与链接的幕后过程

翻译环境

翻译环境由编译和链接两个大的过程组成,编译又分为预处理、编译、汇编三个过程

编译

编译就是将预处理后的文件进行一系列的词法分析、语法分析、语义分析及优化,生成相应的编译代码文件,简而言之就是将C语言代码转换成汇编代码

语义分析

由分析器来完成语义分析,即对表达式的语法层面分析(这个过程是静态分析),这个阶段会报告错误的语法信息

汇编

汇编器将汇编代码转变成机器可执行的指令(2进制指令),每个汇编语句几乎都对应一条机器指令

链接

链接的时候需要把一堆文件链接在一起才生成可执行程序

链接过程:地址和空间分配,符号决议和重定位等步骤

链接解决的是一个项目中多文件、多模块之间相互调用的问题

← 返回列表