•编译流程
–GCC编译流程分为四个步骤:
编译预处理、编译、汇编和链接:
–
预编译(Pre-Processing)
预编译是在程序被编译之前为编译器所做的一些准备工作,主要是
拷贝包含的头文件到源程序文件、进行宏替换和处理条件编译。我们使用-E选项来使得GCC编译器在完成预处理后停止执行。如:
–编译(Compiling)
在这个阶段中,GCC编译器首先要
检查代码的规范性,有无语法错误,检查无误后再将代码翻译成汇编语言。 我们使用-S选项来使得GCC编译器只将输入的文件编译成汇编代码,而不再进一步处理。
–汇编(Assembling)
汇编阶段就是把编译阶段生成的
.s文件转换成目标文件。在此可使用选项-c来生成.o的二进制目标代码。如:
–链接(Linking)
在成功编译后,就进入了链接阶段。所谓链接就是把
前面生成的目标文件及所用到的库函数链接成一个可执行文件。如:
- 命令
-o:指定生成的输出文件;-E:仅执行编译预处理;-S:将C代码转换为汇编代码;-
wall:显示警告信息;-c:仅执行编译操作,不进行连接操作。