C语言hello.c如何变成执行程序的

//hello.c

#include

int main()

{

printf("Hello world\n");

}


编译命令:

unix> gcc -o hello hello.c

编译过程分4个步骤(Preprocessor; Compiler; Assember, Linker)


  1. Preprocessing phase, 预处理阶段 。生成.i 文件,替换以#开头的代码行,如上面#include ,会吧stdio.h中的内容插入到代码中形成新的以.i为后缀的新的代码文件中去。
  2. Compilation phase,编译阶段(cc1)。生成.s文件,.s 文件是一个汇编语言组成的文件。
  3. Assembly phase, 汇编阶段(assembler)。生成.o文件,.o文件是由机器指令组成的
  4. Link phase(ld),链接阶段。生成执行文件,把二进制文件链接成可以直接运行的可执行程序。这个文件会被操作系统load,并被OS执行。


 

你可能感兴趣的:(读书笔记)