简单来说,整个过程分为四个阶段:预处理(Pre-Processing)、编译(Compilation)、汇编(Assembling)、链接(Linking)。
注意:其中源程序、修改了的源程序和汇编程序都是文本文件,而可重定位目标程序和可执行目标程序都是二进制文件。
似乎到这里就该结束了,因为整个过程已经讲完了?。当然如果只是这样介绍的话本文就没有存在的价值了,我们还得再深入一点分别讲解这四个阶段?。
预处理
首先我们准备一个简单的Hello World程序,命名为main.c。
#include<stdio.h>
#defineinfo "Hello, world\n"intmain(){// A simple program.printf(info);return0;}
预处理阶段做的事情就是预处理器(cpp)根据以字符#开头的代码修改原始的C程序。
比如#include <stdio.h>,将头文件stdio.h中的内容加到程序文本中
比如#define info "Hello, world\n",会将宏定义的