程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

C基础:从源代码到可执行文件

balukai 2025-05-27 12:42:42 文章精选 8 ℃

一直借助IDE自动编译生成可执行文件,没有仔细关注这个过程,今天正好有空,查查资料来总结一下。

我们写的C程序都是我们人类可以读懂的文本。可是为了在系统上运行我们的程序,必须把我们的C程序中每条语句转换成机器语言指令的,同时要把这些指令按照可执行目标文件格式组织成可执行目标文件。这种转换通常由编译器驱动程序完成,比如:gcc;

假设我们有一个hello.c源文件,要把它翻译成一个可执行文件hello,需要经历四个阶段:

  1. 预处理阶段:预处理器(cpp)根据以字符#开头的命令,修改hello.c,这一阶段处理完成w会得到另一个C程序,通常是以.i作为文件扩展名,如hello.i;
  2. 编译阶段:编译器(ccl)将文本文件hello.i翻译成文本文件hello.s,它是一个汇编语言程序。
  3. 汇编阶段:汇编器(as)将hello.s翻译成机器语言指令并将这些指令打包成可重定位目标文件,如hello.o;(汇编语言是非常有用的,因为它为不同高级语言的不同编译器提供了通用的输出语言。)
  4. 链接阶段:链接器(ld)将hello.o和它依赖的文件(如printf.o)链接在一起,组织成一个可执行目标文件hello,这个文件是可以被加载到内存中,由系统执行。


最近发表
标签列表