C语言程序编译后产生哪些类型的文件?这些文件的作用是什么?
3个回答
展开全部
1、以GCC编译器为例,可以分为四步。
第一步是预处理,包括语法检查等工作。
gcc -P abc.c
第二步由源程序生产汇编语言代码。
gcc -S abc.c
会生成abc.s文件,这个文件里就是汇编代码。
第三步编译器生成目标代码,一个源文件生成一个目标代码。
gcc -c abc.c
会生成abc.o
第四步连接器从目标代码生成可执行文件。
gcc abc.o
2、目标代码包括机器码和符号表(函数及变量名)。连接器的主要作用是通过符号表在库文件和其他模块中找到在目标代码中引入或未定义的符号(函数及变量名),将几个目标代码合成可执行文件。
第一步是预处理,包括语法检查等工作。
gcc -P abc.c
第二步由源程序生产汇编语言代码。
gcc -S abc.c
会生成abc.s文件,这个文件里就是汇编代码。
第三步编译器生成目标代码,一个源文件生成一个目标代码。
gcc -c abc.c
会生成abc.o
第四步连接器从目标代码生成可执行文件。
gcc abc.o
2、目标代码包括机器码和符号表(函数及变量名)。连接器的主要作用是通过符号表在库文件和其他模块中找到在目标代码中引入或未定义的符号(函数及变量名),将几个目标代码合成可执行文件。
展开全部
编译后,会产生.dsp文件,是工程项目文件
.obj目标文件
.exe可执行文件
.obj目标文件
.exe可执行文件
追问
作用呢?
追答
.DSP:VC开发环境生成的工程文件,VC4及以前版本使用MAK文件来定义工程。
.DSW:VC开发环境生成的WorkSpace文件,用来把多个工程组织到一个WorkSpace中。
.obj是编译的结果... 生成二进制文件..还需要连接器对.obj进行链接
如果用的是集成开发环境。
若没有修改某个模块的代码 并且模块对应的obj文件还存在的话
那么编译器就不会重新编译这个文件...这样加快编译的速度..
.exe是可执行文件,可以直接双击这个文件来运行程序。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-12-31
展开全部
不同的系统,产生的文件不一样;
win:
->.obj目标文件
->.obj目标文件 ->.exe可执行文件
->.rc
。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询