ESc:-E预处理,-S编译,-c汇编
-o 输出
-I[头文件] 包含头文件
-D [宏定义] 添加宏定义
-O [数字] 数值为0-3,0不优化,3最优化,默认值1
-Wall 输出编译过程的提示信息
-g 添加调试信息
-L [库所在的路径]
-l [库的名称]
举例说明(预处理器(cpp)->编译器(gcc)->汇编器(as)->链接器(ld)):
预处理:gcc -E hello.c -o hello.i //头文件、宏等替换,去掉注释,CPPFLAGS参数作用在这个阶段,如-I,-D
编译:gcc -S hello.i -o hello.s //c文件生成汇编文件,CFLAGS一些参数作用在这个阶段,如-Wall,-g
汇编:gcc -c heelo.s -o hello.o //汇编文件生成二进制目标文件
链接:gcc hello.o -o hello //链接库函数,生成可执行文件,LDFLAGS参数作用在这个阶段,如-L,-l