使用gcc编译程序时,编译过程可以分为四个阶段:
1.预处理阶段
预处理阶段就是将头文件中的内容加载到.c文件的上方。
输入命令gcc -E test.c -o test.i。执行-E命令,只对.c文件进行预编译,不做其他操作。将生成文件命名为test.i
2.编译阶段
编译阶段会进行词法分析,语法分析,语义分析。
在shell中输入命令“gcc -S test.i -o test.s”。执行-c命令,只对.i文件进行编译,不做其他操作。将生成文件命名为test.s
3.汇编阶段
汇编阶段会把汇编程序翻译成目标文件,即二进制文件
在shell中输入命令“gcc -c test.s -o test.o”。执行-S命令,只对.s文件进行汇编,不做其他操作。将生成文件命名为test.o
4.链接阶段
链接阶段会把程序中所有的目标文件和所需的库文件都链接在一起,生成可执行文件。
在shell中输入命令“gcc test.o -o test”。执行命令,对.o文件进行链接。将生成的可执行文件命名为test
以上就是个人总结的汇编程序从.c到a.out的生命历程,`(*∩_∩*)′