编译器怎么把多个源文件编译成一个程序

  1. 预处理:修改代码。用#include指令添加相关的头文件,编译器可能还需要根据实际情况跳过程序中的某些代码或补充一些代码,可以用#define和#ifdef来实现。
  2. 编译:转换成汇编代码。计算机只能理解更低层的机器代码指令。而生成机器代码的第一步就是把C语言源代码转化为汇编语言代码。
  3. 汇编:生成目标代码。编译器把这些汇编代码(都是些符号代码)汇编成机器代码或目标代码,即CPU内部电路执行的二进制代码。因为你给了编译器好几个源文件来编译程序,所以编译器会为每个源文件生成一个目标代码,接下来还要做最后一件事;
  4. 链接:把目标代码放在一起。当某个目标代码的代码调用了另一个目标代码的函数时,编译器会把它们连接在一起。同时,链接还会确保程序能够调用库代码 。最后,程序会写到一个可执行程序文件中,文件格式视操作系统而定。操作系统会根据文件格式把程序加载到内存中运行。

猜你喜欢

转载自blog.csdn.net/weixin_40763897/article/details/87195949