编译与链接

预编译:

    1、删除所有#define,展开宏定义

    2、处理所有条件预编译指令,#if,#ifdef,#elif,#endif等

    3、处理#include预编译命令,将被包含的文件插入到该预编译指令的位置

    4、删除所有注释,//,/**/

    5、添加行号和文件名标志。便于编译时产生的错误定位

    6、保留所有的#pragma编译器指令

编译:

   把预处理完的文件进行一系列的词法分析,语义分析,语法分析及优化后生产相应的汇编代码文件

           gcc  -S  hello.c  -o  hello.s

汇编:

   将汇编代码转换成机器可以执行的指令

          as  hello.s -o  hello.o

链接:

     与一些库文件或相关的文件生成最终可执行文件

       ld  -static  /usr/lib/crt1.o .......

  

posted @ 2013-12-07 10:09  luolinux  阅读(265)  评论(0)    收藏  举报