关于编译的四个步骤

对于c c++这种编译语言是有四个编译过程的。
平常我们使用gcc g++的人知道,直接在linux下使用命令gcc XX.c -o XX就会生成XX可执行文件,其中的三步编译器是帮我们做了,但是有的时候我们可能需要知道这些中间过程,以及这些中间文件的内容。
以gcc 编译c语言为例,假设编译文件为test.c
1.首先 gcc -E test.c -o test.i 使用-E生成.i的文件,这部分是预处理,编译器会把预处理命令替换(例如头文件的展开、宏定义的替换、条件编译的替换)
2.gcc -S test.i -o test.s 使用-S 生成.s 的文件,这部分是汇编,编译器把.i文件进行汇编处理,在里面我们可以看到全是汇编指令堆积的代码
3.gcc -c test.s -o test.c 使用-c生成.c的文件,这部分是二进制处理,编译器把汇编编译成 1 0 这样的二进制文件
4.gcc test.c -o test 使用 .c文件生成可执行文件

你可能感兴趣的:(关于编译的四个步骤)