从源文件到可执行文件的转化过程可以分为以下几个步骤:
预处理:预处理器读取系统头文件的内容后,插入到程序文本中,得到新的C程序。这一步主要处理伪指令和特殊符号,例如宏定义、条件编译指令和包含其他文件等。
编译:编译器将预处理后的代码进行词法分析、语法分析、语义分析以及优化,最终生成汇编代码。这一步会检查代码的语法和语义是否正确,并进行优化以提高代码效率。
汇编:汇编器将汇编代码翻译成机器指令,并将这些指令打包成可重定位的目标程序。这一步主要是根据汇编指令和机器指令码的对照表进行翻译。
链接:链接器将编译后产生的多个目标文件以及所需的库文件组合成一个单一的可执行文件。链接分为静态链接和动态链接,静态链接在程序编译时就完成,而动态链接在程序运行时完成。