预处理:生成后缀名为.i的预处理后的文件(由预处理器cpp完成)编译:将预处理后的文件转换成汇编语言,生成后缀名为.s的汇编文件(由编译器gcc完成)汇编:由汇编代码生成目标代码,即机器代码,生成后缀名为.o的目标文件(由汇编器as完成)连接:由各个文件的目标代码,生成可执行程序(连接器ld)