美文网首页
第二部分-静态链接

第二部分-静态链接

作者: 努力爬行中的蜗牛 | 来源:发表于2017-03-14 23:08 被阅读4次

    一、编译和链接

    1、构建:IDE一般都将编译和链接的过程一步完成,通常将这种编译和链接合并到一起的过程称为构建;

    2、程序从源代码到最终可执行文件一般分为4个步骤:预处理(processing)、编译(compilation)、汇编(assembly)、链接(linking);

    1)预编译:编译器将源代码文件和相关头文件编译成一个.i文件;

    预编译过程主要处理那些源代码文件中以#开始的预编译指令。如“#include”,“define”,主要处理规则如下:

    a、将所有的“#define”删除,并且展开所有的宏定义;

    b、处理所有条件预编译指令,将被包含的文件插入到该预编译指令的位置;

    c、删除所有的“//”和"/* */”;

    d、添加行号和文件名标识;

    e、保留所有的#progma编译器指令,因为编译器需要使用它们;

    2)编译:编译过程就是把预处理完的文件进行一系列的词法分析、语法分析、语义分析及优化后生成相应的汇编代码文件,这个部分是整个程序构建的核心部分;

    3)汇编:汇编就是汇编器将汇编代码转变成机器可执行的指令,每一个汇编语句几乎都对应一条机器指令;经过预编译、编译和汇编输入目标文件;

    4)链接:输出可执行文件;

    编译过程一般分为6步:扫描、语法分析、语义分析、源代码优化、代码生成和目标代码优化;

    链接过程主要包括了地址和空间分配、符号决议和重定位;

    最基本的静态链接过程:每个模块的源代码文件经过编译器编译成目标文件,目标文件和库(Library)一起链接形成最终可执行文件。而最常见的库就是运行时库(Runtime Librayr),他是支撑程序运行的基本函数的集合,库其实是一组目标文件的包,就是一些最常用的代码编译成目标文件后打包存放;

    相关文章

      网友评论

          本文标题:第二部分-静态链接

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