从源文件.cpp到可执行文件.exe的编译过程,实际可拆分为4小步:①预编译 ②编译 ③汇编 ④链接
①预编译/编译预处理 -E:代码文本替换工作。把#include <> 文件的宏命令这行代码,替换为所提及的那个头文件的全部代码。是整个编译过程最先做的工作。
gcc -E hello.c -o hello.i //生成 【*.i】文件(预处理后的源文件,将头文件进行了文本替换。代码总量就变长了)
②编译 -S:把高级语言翻译为汇编语言
gcc -S hello.i -o hello.s //生成【*.s】文件(汇编文件,高级语言→汇编语言)
③汇编:把汇编语言翻译为机器代码(0101),生成目标文件.o / .obj (Linux上为.o文件,Windows上为.obj文件)
as hello.s -o hello.o //生成 【*.o】文件(目标文件,二进制文件)
④链接:把静态库 静态链接or把动态库 动态链接
gcc hello.o -o hello //生成可执行程序(Windows:.exe   Linux:a.out)