C语言——编译器如何将C源文件编译成可执行代码?
Posted yanzhuang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言——编译器如何将C源文件编译成可执行代码?相关的知识,希望对你有一定的参考价值。
步骤:
预编译阶段。
预处理器插入”#include”所包含的内容,删除注释,展开源文件中的宏,从而生成预编译文件。
编译阶段。
编译器先将预编译文件转换为汇编源文件,再将汇编源文件转换为二进制文件。
链接阶段。
链接器将编译生成的二进制文件、使用的库函数的二进制文件和启动代码的二进制文件链接在一起,生成可执行程序。
图一 流程图
举例如下:
Windows环境下的GCC编译器
图二 源文件test.c
预编译
命令行:gcc -E test.c -o test.i
图三 预编译文件test.i(部分)
可以看到,stdio.h文件已经被包含进test.i中。
02
编译
命令行:gcc -S test.c -o test.s
图四 汇编源文件test.s(部分)
命令行:gcc -c test.c -o test.o
图五 二进制文件test.o(部分)
03
链接
命令行:gcc test.o -o test
图六 所有文件
图七 执行结果
以上是关于C语言——编译器如何将C源文件编译成可执行代码?的主要内容,如果未能解决你的问题,请参考以下文章