C++从源代码到可执行文件经过了哪些过程?
预处理:
将所有的#define删除,并且展开所有的宏定义。
处理预编译指令。
删除所有注释 “//”和”/* */”。
添加行号和文件标识,以便编译时产生调试用的行号及编译错误警告行号。
保留所有的#pragma编译器指令,因为编译器需要使用它们。编译:
编译过程就是把预处理完的文件生成相应汇编代码。
汇编
汇编器是将汇编代码转变成机器可以执行的命令,生成目标文件。每一个汇编语句几乎都对应一条机器指令。汇编相对于编译过程比较简单。
链接
通过调用链接器来链接程序运行需要的一大堆目标文件,以及所依赖的其它库文件,最后生成可执行文件。
链接详细过程
链接分为静态链接和动态链接。
链接器的作用是分离编译,我们不需要将大型应用程序组织为巨大的源文件,可以把它分解为更小、更好管理的模块,可以独立地修改和编译这些模块。
链接器主要完成两个任务:
1 <