编译产生目标文件
① 选择题:由C++源程序文件编译而成的目标文件的默认扩展名为( )。A)cpp B)exe C)obj D)lik
由C++源程序文件编译而成的目标文件的默认扩展名为:obj。
在VC6.0集成开发环境下,用户可以使用编译(compile)命令将一个.cpp为扩展名的C++源程序文件转换成一个以.obj为扩展名的目标文件。
编译,编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。
(1)编译产生目标文件扩展阅读
源代码-->预处理-->编译-->优化-->汇编-->链接-->可执行文件
编译过程就是把预处理完的文件进行一系列的词法分析,语法分析,语义分析及优化后生成相应的汇编代码。
现在版本的GCC把预处理和编译两个步骤合成一个步骤,用cc1工具来完成。gcc其实是后台程序的一些包装,根据不同参数去调用其他的实际处理程序,比如:预编译编译程序cc1、汇编器as、连接器。
编译器在编译时是以c/c++文件为单位进行的, 如果项目中没有c/c++文件,那么你的项目将无法编译。
经过预编译得到的输出文件中,将只有常量。如数字、字符串、变量的定义,以及c语言的关键字,如main,if,else,for,while,{,},+,-,*,,等等。编译程序所要作得工作就是通过词法分析和语法分析,在确认所有的指令都符合语法规则之后,将其翻译成等价的中间代码表示或汇编代码。
② c语言代码写完如何运行
c语言代码需要经过编译、链接和运行三个步骤才能运行。
1. 编写代码:使用文本编辑器编写c语言代码,保存为.c文件。
2. 编译代码:使用c语言编译器将.c文件编译成目标文件,命令格式为:gcc -c filename.c,其中filename为你的.c文件名。
3. 链接代码:使用链接器将目标文件和库文件链接成可执行文件,命令格式为:gcc -o executable filename.o,其中executable为可执行文件名,filename.o为编译生成的目标文件名。
4. 运行程序:在命令行中输入可执行文件名,即可运行程序。
例如,假设你的c代码文件名为hello.c,可以按照以下步骤运行:
1. 编写代码:使用文本编辑器编写hello.c文件。
2. 编译代码:在命令行中输入命令:gcc -c hello.c,生成目标文件hello.o。
3. 链接代码:在命令行中输入命令:gcc -o hello hello.o,生成可执行文件hello。
4. 运行程序:在命令行中输入命令:./hello,即可运行程序。
③ C语言源程序文件经过编译连接之后生成一个后缀为_____的文件。
如果只生成一个文件,那么这个题目答案是B。编译(compile)后生成目标文件,后缀:.obj。也就是机器码。
然后链接器(Linker) 连接生成可执行文件,后缀:.exe。最后运行命令(go),直接运行.exe文件。
(3)编译产生目标文件扩展阅读:
简单讲,编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。
一个现代编译器的主要工作流程:源代码(source code) →预处理器(preprocessor) →编译器(compiler) →目标代码(object code) →链接器(Linker) → 可执行程序(executables)
高级计算机语言便于人编写,阅读交流,维护。机器语言是计算机能直接解读、运行的。
编译器将汇编或高级计算机语言源程序(Source program)作为输入,翻译成目标语言(Target language)机器代码的等价程序。
源代码一般为高级语言 (High-level language), 如Pascal、C、C++、Java、汉语编程等或汇编语言。
而目标则是机器语言的目标代码(Object code),有时也称作机器代码(Machine code)。
对于C#、VB等高级语言而言,此时编译器完成的功能是把源码(SourceCode)编译成通用中间语言(MSIL/CIL)的字节码(ByteCode)。
最后运行的时候通过通用语言运行库的转换,编程最终可以被CPU直接计算的机器码(NativeCode)。
④ 编译程序的主要功能是()。
此题应选B选项,答案C是错误的。
B、生成目标文件。
1、利用编译程序从源语言编写的源程序产生目标程序的过程。
2、仅仅只是编译,是不会输出运行结果的。
(4)编译产生目标文件扩展阅读:
编译(compilation , compile) 1、利用编译程序从源语言编写的源程序产生目标程序的过程。 2、用编译程序产生目标程序的动作。 编译就是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0,编译程序把人们熟悉的语言换成2进制的。
编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;语义检查和中间代码生成;代码优化;目标代码生成。主要是进行词法分析和语法分析,又称为源程序分析,分析过程中发现有语法错误,给出提示信息。
⑤ c++编译后产生的一些文件是什么
c++程序在编译后,在目标路径下会生成多个文件:
Debug文件夹(*.exe,*.ilk,*.obj,*.pch,*.pdb,*.idb,*,pdb),*.cpp,*.dsp,*.ncb,*.plg。
1、exe:是生成的可执行文件。
2、ilk:当选定渐增型编译连接时,连接器自动生成ILK文件,记录连接信息。
3、obj:是目标文件,源程序编译后的产物。
4、pch:全称是PreCompiled Header,就是预先编译好的头文件。
5、idb:文件保存的信息,使编译器在重新编译的时候只重编译最新改动过的函数和只对最新类定义改动过的源文件进行重编译,以提高编译速度。
6、pdb:全称是Program DataBase,即程序数据库文件,用来记录调试信息。
(5)编译产生目标文件扩展阅读:
工作原理:
C++语言的程序因为要体现高性能,所以都是编译型的。但其开发环境,为了方便测试,将调试环境做成解释型的。即开发过程中,以解释型的逐条语句执行方式来进行调试,以编译型的脱离开发环境而启动运行的方式来生成程序最终的执行代码。
生成程序是指将源码(C++语句)转换成一个可以运行的应用程序的过程。如果程序的编写是正确的,那么通常只需按一个功能键,即可搞定这个过程。该过程实际上分成两个步骤。
第一步是对程序进行编译,这需要用到编译器(compiler)。编译器将C++语句转换成机器码(也称为目标码);如果这个步骤成功,下一步就是对程序进行链接,这需要用到链接器(linker)。链接器将编译获得机器码与C++库中的代码进行合并。