面试题----gcc的编译流程

gcc编译流程

一、    编译与处理指令:

gcc -E hello.c -o a.c

如果不使用-o指定输出的文件,会默认输出到终端。所以建议使用同时使用-o选项。

还要注意:编译时会保留#pragma编译器指令,因为编译器需要使用它们。

二、    编译指令:

将C代码翻译成汇编代码

gcc -S hello.c -o a.s

如果不使用-o选项指定输出文件,默认输出到a.s。

三、    汇编指令:

将汇编代码翻译成机器码

gcc -c hello.c -o a.o

如果不使用-o选项指定输出文件,默认输出到a.o。

四、    链接指令:

gcc hello.c -o a

gcc不带任何参数。

如果不使用-o参数指定输出的文件,会默认生成a.out文件。

以上指令,后面的指令都包含前面指令的功能,比如gcc不带参数,不是仅仅适用于链接,它也可以包含整个编译阶段。

原文地址:https://www.cnblogs.com/qingergege/p/7831561.html