预处理Pre-Processing:GNU 的 C 预处理器(cpp)解析头文件(#include语句),展开 宏macros 定义(#define语句),并使用展开的源文件代码来生成一个中间文件,如hellogcc.i。编译Compilation:在这个期间中,编译器将预处理的源文件代码转换为指定 CPU 架构的汇编代码。由此生成是汇编文件使用一个 .s扩展名来命名,如在这个示例中的hellogcc.s。汇编Assembly:汇编程序(as)将汇编代码转换为目标机器代码,放在目标文件中,例如hellogcc.o。链接Linking:链接器(ld)将目标代码和库代码链接起来生成一个可执行文件,例如hellogcc。