目录
一、大致流程
二、预编译
三、编译
四、汇编
五、链接
六、总结
一、大致流程
C语言的大致翻译运行流程如下,后文主要简单介绍编译的四个过程。
二、预编译
预处理:处理源代码中的预处理指令,例如#include、#define、#ifdef等。使用命令行工具gcc -E进行预处理。主要包括#include头文件的包含,#define,注释删除使空格代替注释。
gcc -E source_file.c -o preprocessed_file.i
三、编译
编译:这个过程主要是把C语言代码翻译成汇编代码,使用命令行工具gcc -S进行编译。
gcc -S preprocessed_file.i -o compiled_file.s
四、汇编
汇编:把汇编代码转换成二进制指令,使用命令行工具gcc -c进行汇编。
gcc -c compiled_file.s -o assembled_file.o
五、 链接
链接:将各个模块的目标文件和所需的库文件进行合并,生成可执行文件。使用gcc本身或者其他链接工具如ld进行链接。
gcc assembled_file.o -o executable_file
注:以上命令假设你的源文件名为source_file.c
六、总结
1.预处理选项gcc-E将源文件***.c处理为***.i完成后停下来,产生的结果放在.i文件中。
2.编译选项gcc-s,***.i---***.s,完成后停下来,产生的结果放在.s文件中。
3.汇编选项gcc-c,***.s---***.o,完成后停下来,产生的结果放在.o文件中。