源码要运行,必须先转成二进制的机器码。这是编译器的任务。
比如,下面这段源码(假定文件名叫做test.c)。
#include <stdio.h> int main(void) { fputs("Hello, world!\n", stdout); return 0; }
要先用编译器处理一下,才能运行。
$ gcc test.c $ ./a.out Hello, world!
对于复杂的项目,编译过程还必须分成三步。
$ ./configure $ make $ make install
这些命令到底在干什么?大多数的书籍和资料,都语焉不详,只说这样就可以编译了,没有进一步的解释。
本文将介绍编译器的工作过程,也就是上面这三个命令各自的任务。我主要参考了Alex Smith的文章

本文详细介绍了编译器从源码到可执行文件的工作过程,包括配置、确定标准库和头文件位置、确定依赖关系、预编译、预处理、编译、连接、安装、操作系统连接以及动态连接等步骤,帮助读者深入理解编译原理。
最低0.47元/天 解锁文章
1348





