编译器的工作一般分为哪几个阶段?
gcc编译器对源文件文件的编译分为四个阶段:预处理、编译、汇编、链接。
预处理(-e):在这个阶段主要做了三件事:展开头文件、宏替换、去掉注释行,这个阶段需要gcc调用预处理器来完成,最重得到的还是源文件,文本格式。
编译(-s):这个阶段需要gcc编译器调用编译器对文件进行编译,最终得到一个汇编文件。
汇编(-c):这个阶段需要gcc调用汇编器对文件进行汇编,最终得到一个二进制文件。
链接(-o):这个阶段需要gcc调用连接器对程序需要调用的库进行链接,最终得到一个可执行的二进制文件。
C语言源文件(预处理) ---------> 预处理后的文件(编译) --------------> 汇编文件(汇编) ----------->二进制目标文件(链接) --------->可执行程序。