一个程序从开始运行到结束的完整过程(四个过程)
1、编译预处理:处理伪指令
1> 头文件包含
2> 宏定义
3> 条件编译 #if #endif
gcc -E xxx.c -o xxx.i
2、编译:把预处理之后的文件进行语法分析,生成汇编代码
gcc -S xx.i -o xx.s
3、汇编:将汇编文件生成机器代码(二进制代码)
as xx.s -o xx.o
4、链接:去指定路径下找库函数 (头文件包含的是声明,具体实现封装在库中)
gcc xx.o -o xx
-c: 只编译不链接 (只做编译过程的前3步)
-g: 加入调试信息 供gdb调试