Miracle

有梦想就不会觉得苦。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

预编译,编译,汇编

Posted on 2011-05-23 10:36  gsky  阅读(529)  评论(0)    收藏  举报

1    预编译:gcc -E hello.c -o hello.i (-E表示只进行预编译)
      预编译过程主要处理那些源代码中的以“#”开始的预编译指令,比如“#include”,“#define”等。

2  编译:gcc -S hello.i -o hello.s
     编译过程就是把预处理完的文件进行一系列词法分析,语法分析,语义分析及优化后生成相应的汇编代码文件,这个过程往往是整个程序构建的核心部分,也是最复杂的部分之一。
     gcc把预编译和编译两个步骤合并成一个步骤:gcc -S hello.c -o hello.s

3  汇编:gcc -c hello.s -o hello.o
     汇编器是将汇编代码转变成机器可以执行的指令,每一个汇编语句几乎都对应一条机器指令。
     gcc从C源代码直接输出目标文件:gcc -c hello.c -o hello.o