C编译过程
当在命令行中输入下列编译指令时:
gcc -O2 -o p.out p1.c p2.c
其后台具体编译过程如下:
1、首先分别将p1.c和p2.c文件中的包含的头文件和宏定义在文件中扩展开,形成.i文件;
2、然后将p1.i和p2.i编译成汇编代码文件:p1.s和p2.s;
3、接着将汇编代码文件在转化成二进制指令文件:p1.o和p2.o;
4、最后连接过程,将两个.o文件和一些标准类库函数实现连接起来形成p.out可执行文件。
gcc的一些参数说明:
[-S] 表示编译到产生汇编代码文件为止;产生.s文件。
[-c] 表示编译到产生二进制指令文件为止;产生.o文件。
[-O + 数字] 表示优化级别,一般取2。
[-o + 文件名] 指定输出文件名,即最后编译连接后产生的可执行文件名。
注:
可以通过objdump命令来查看.o文件信息。
如objdump -d test.o就可以查看执行部分的汇编代码。