编译器编译过程探究
该度过 2019-05-07 11:15:49 246 收藏 1
展开
摘要: 完整的语言处理系统包括预处理器、编译器、汇编器、连接-编辑器四个组成部分。一个典型的编译过程为:预处理器将源程序中的宏展开为原始语句加入到源程序中,编译器则产生汇编代码,汇编代码交由汇编器产生可重定位机器代码,然后与一些库程序连接在一起形成绝对机器代码,即可在计算机上执行的代码。本文以GCC为工具,对简单的C,C++程序进行编译,观察其各个部分的输出内容,探究语言处理系统所做的完整工作。
关键字:预处理 编译 汇编 链接 问题探究
1 引言
一个 C 或者 C++ 语言程序在编译成为可执行目标程序的过程中需要经历预处理、编译、汇编、链接四个阶段。如下图所示:
源程序
目标汇编程序
可重定位机器代码
绝对机器代码
预处理器
编译器
汇编器
连接器
可执行目标程序
本文将采用如下几段 C 或 C++ 代码,对编译的过程及结果进行分析,探究语言系统所做的完整工作。
// test.cc
#include<iostream>
using namespace std;
int main(){
int i,n,f;