上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
2.1 二进制代码的生成过程
从源代码(如C或C++语言程序)生成二进制可执行文件的过程叫做编译过程。编译过程由编译器完成,这里以gcc(The GNU Compiler Collection, GNU编译器套装)为例进行说明。整个编译过程分为四个阶段:预编译阶段(也叫做编译预处理阶段)、编译阶段、汇编阶段以及链接阶段,如图2.1所示。
图2.1 从源代码到可执行文件的编译过程
注意,这里的编译过程和编译阶段是两个不同的事情。实际上,现代编译器通常会合并其中的一些或全部阶段。
下面以图2.1中的程序Prog.c生成可执行文件Prog的过程为例进行说明。在默认情况下,执行命令“gcc Prog.c-o Prog”后,gcc可自动执行编译过程的所有阶段,生成可执行文件Prog。如果要单独执行某个阶段,必须显式地为gcc指定相关选项。