C语言学习笔记5-程序编译和执行过程

除了一步编译gcc -o hello.exe hello.c之外,还有分部编译的方法和过程
C语言编译成可执行程序进过4步:
1、预处理:宏定义展开、头文件展开、条件编译等,同时将代码中的注释删除。这里并不检查语法
2、编译:检查语法,将预处理后的文件 编译成汇编文件
3、汇编:将汇编文件生成目标文件(二进制文件)
4、链接:C语言写的程序是需要依赖各种库的,所以编译之后还需要把库链接到最终的可执行程序中去

gcc编译过程
1、预处理:gcc -E hello.c -o hello.i
2、编译:gcc -S hello.i -o hello.s
3、汇编:gcc -c hello.s -o hello.o
4、链接:gcc hello.o -o hello.exe

-E 只进行预处理
-S 只进行预处理和编译
-c 只进行预处理、编译和汇编
-o file 指定生成的输出文件名为file

常见的代码异常
1、编辑时异常
2、编译时异常
3、运行时异常

程序执行过程
C语言学习笔记5-程序编译和执行过程