对于C这种编译性语言,我们平时编译时,不管是通过IDE图形界面,还是通过命令行,总感觉编译一下就完成了,然后就得到了针对某OS和某CPU的二进制可执行文件(机器指令的文件)。但是实际上在源码到可执行文件中间隐藏了四个过程,这四个过程被OS默默的处理了。

编译四个过程:预处理、编译、汇编、链接

四个过程中的“编译”,特指其中的某个过程,这四个过程合在一起,我们也统称为编译,所以“编译”二字到底指的是第二个过程,还是全部过程的统称,这个就要看说话的“语境”了。其实统称的“编译”,完整的称法应该叫“编译链接”,只是简称为编译而已。

如果这四个过程是一次性编译完成的,这个四个过程分别会产生相应的文件,只不过中间产生的文件都是过渡性的临时文件,使用完成后就会被删除。

图解编译4过程:

预处理、编译、汇编、链接、启动代码、相关command

 编译并不是一个程序,而是一个集合。常用GCC代表编译器集合,gcc指集合中的gcc程序

预处理、编译、汇编、链接、启动代码、相关command

 

四过程总览

实验代码

test.c

#include <stdio.h>
#include <stdlib.h>

#define NUM 100

int main()
{
    #if 0
    printf("Test condition macro\n");
    #endif

    printf("Hello World\n");
    return 0;
}
View Code

相关文章:

  • 2021-04-09
  • 2021-12-21
  • 2021-12-04
  • 2021-12-19
  • 2022-12-23
  • 2021-12-31
猜你喜欢
  • 2022-12-23
  • 2021-06-10
  • 2022-01-03
  • 2022-12-23
  • 2022-12-23
  • 2021-09-22
  • 2021-07-28
相关资源
相似解决方案