【gcc -E test.c -o test.i------>预处理文件生成.i 文件。】html
-
一、c语言程序生成过程
-
C语言程序的生成过程能够简单的分为:编辑、预处理、编译、汇编、连接五个阶断。
-
下面全部的操做以hello world程序为例,源码文件命名为t.c,源码内容以下:
-
#include <stdio.h>
-
int main()
-
{
-
printf("hello world\n");
-
return 0;
-
}
-
二、预处理阶断linux
预处理阶断是对c源码中的预处理代码进行处理。windows
gcc -E -o t.i t.cpost
-
三、编译阶断spa
编译阶断是将c源码处理为汇编代码。操作系统
gcc -S -o t.s t.ihtm
或者blog
gcc -S -o t.s t.cci
-
四、汇编阶断get
汇编阶断是将汇编代码处理为二进制代码。
gcc -c -o t.o t.s
或者
gcc -c -o t.o t.c
-
五、连接阶断
连接阶断将二进制代码打包成一个操做系统能够识别的可执行文件格式,linux是elf格式,windows上是pe格式。
gcc -o t t.o
或者
gcc -o t t.c
-
-
六、运行阶断
-
运行阶断,有操做系统的可执行文件加载器负责加载并执行程序。
-
./t