网友您好, 请在下方输入框内输入要搜索的题目:
题目内容
(请给出正确答案)
gcc编译过程一般分为哪几个阶段?各阶段的主要工作是什么?
参考答案和解析
gcc编译过程一般分为预处理、编译、汇编、链接四个阶段,各阶段的主要工作如下: (1)预处理阶段 在该阶段,编译器将上述代码中的stdio.h编译进来。GCC首先调用cpp进行预处理,根据以字符#开头的命令修改原始的C程序。如hello.c中#include <stdio.h>指令告诉预处理器读系统头文件stdio.h的内容,并把它直接插入到程序文本中去。结果就得到经过编译预处理的源代码hello.i。 但实际工作中通常不用专门生成这种文件,因为基本上用不到。若非要生成这种文件不可,可以利用下面的示例命令。 $gcc -E hello.c -o hello.i (2)编译阶段 GCC调用cc1检查代码的规范性,是否有语法错误等,以确定代码实际要做的工作,在检查无误后,把代码翻译成汇编语言,生成汇编处理后的汇编代码hello.s。这个阶段对应的GCC命令如下所示。 $gcc -S hello.i -o hello.s 汇编语言是非常有用的,它为不同高级语言不同编译器提供了通用的语言。如:C编译器和Fortran编译器产生的输出文件用的都是一样的汇编语言。 (3)汇编阶段 GCC调用as把编译阶段生成的hello.s文件转成编译后的目标文件hello.o,但hello.c中所引用的其他文件中函数(如printf)的内存位置尚未定义。这个阶段对应的GCC命令如下所示: $gcc -c hello.s -o hello.o (4)链接阶段 GCC调用ld将程序的目标文件与所需的所有附加的目标文件连接起来,最终生成可执行文件。如GCC找到hello.c所调用的函数printf函数库所在位置/user/lib,把函数的实现链接进来,生成最终的可执行文件hello。可以利用下面的示例命令完成。 $gcc hello.o -o hello 如果我们不想生成中间的各类型文件,可用如下命令由源文件直接编译链接成可执行文件。 $gcc hello.c -o hello
更多 “gcc编译过程一般分为哪几个阶段?各阶段的主要工作是什么?” 相关考题
考题
下面哪项关于GCC编译过程的说法是错误的:()
A.编译阶段GCC要检查代码规范性、是否有语法错误等,确定代码的实际要做的工作B.汇编阶段是把编译阶段生成的.s文件转成目标文件C.预处理阶段,GCC编译器将代码中包含的头文件编译进来D.GCC在编译时默认使用静态库
考题
结构化方法将软件生存期分为计划、开发、运行三个大的阶段,每个阶段又分为若干个阶段,各阶段的工作按顺序开展,回答下列问题:1.计划阶段的主要任务是什么,它分为哪几个阶段?2.开发阶段的主要任务是什么,它分为哪几个阶段?3.运行阶段的主要任务是什么,它分为哪几个阶段?
考题
问答题一个完整的咨询过程分为哪几个阶段?各阶段的主要任务是什么?
热门标签
最新试卷