gcc编译器编译过程

2019-04-08  本文已影响0人  B_____b

第一步:预处理阶段

终端编译代码: gcc -E demo1.c -o demo1.i   对demo1.c作预处理生成demo1.i

1)头文件展开

2)宏替换(傻瓜式替代)

傻瓜式替代例:

#include

#define Phi 3+3//宏

#define add(x) x+x//带参宏

int main(int argc,char ** argv){

       printf("%d\n",Phi*Phi);//3+3*3+3  傻瓜式替代

       printf("%d\n",add(3)*add(3));//3+3*3+3

       return0;

}

3)去注释

4)上标记(给每一行代码标记上行号)

第二步:编译阶段

终端编译代码:gcc -S demo1.i -o demo1.s

编译阶段,计算机会对需要编译的文件进行词法、语法、语义分析,并进行优化以及确保正确。当以上所有语法正确时,生成汇编文件。这个整个编译过程中最核心最重要的一步。

第三步:汇编阶段

终端编译代码:gcc -c demo1.s -o demo1.o

将每一条汇编语言,汇编成计算机能识别的计算机语言

第四步:   链接阶段

终端编译代码:gcc demon1.o -o demon1

将汇编文件链接动态库及静态库,生成可执行文件

上一篇 下一篇

猜你喜欢

热点阅读