当前位置:首页 » 编程软件 » 源程序只有经过编译

源程序只有经过编译

发布时间: 2022-01-08 19:35:33

㈠ 用c语言编写的源程序需要用编译程序先编译成由机器语言组成的目标程序,在经过( )后才能得到可执行程序

源代码需经过编译和链接,才可生成可执行文件。
由汇编程序生成的目标文件并不能立即就被执行,其中可能还有许多没有解决的问题。 例如,某个源文件中的函数可能引用了另一个源文件中定义的某个符号(如变量或者函数调用等);在程序中可能调用了某个库文件中的函数,等等。所有的这些问题,都需要经链接程序的处理方能得以解决。
链接程序的主要工作就是将有关的目标文件彼此相连接,也即将在一个文件中引用的符号同该符号在另外一个文件中的定义连接起来,使得所有的这些目标文件成为一个能够诶操作系统装入执行的统一整体。
根据开发人员指定的同库函数的链接方式的不同,链接处理可分为两种:
(1)静态链接
在这种链接方式下,函数的代码将从其所在地静态链接库中被拷贝到最终的可执行程序中。这样该程序在被执行时这些代码将被装入到该进程的虚拟地址空间中。静态链接库实际上是一个目标文件的集合,其中的每个文件含有库中的一个或者一组相关函数的代码。
(2) 动态链接
在此种方式下,函数的代码被放到称作是动态链接库或共享对象的某个目标文件中。链接程序此时所作的只是在最终的可执行程序中记录下共享对象的名字以及其它少量的登记信息。在此可执行文件被执行时,动态链接库的全部内容将被映射到运行时相应进程的虚地址空间。动态链接程序将根据可执行程序中记录的信息找到相应的函数代码。
对于可执行文件中的函数调用,可分别采用动态链接或静态链接的方法。使用动态链接能够使最终的可执行文件比较短小,并且当共享对象被多个进程使用时能节约一些内存,因为在内存中只需要保存一份此共享对象的代码。但并不是使用动态链接就一定比使用静态链接要优越。在某些情况下动态链接可能带来一些性能上损害。

㈡ c++源程序只有在编译上运行,,为什么我可以下载c++编的软件不用在编译器上运行了

源程序本身只是代码,不能运行,但是它可以先被编译成可执行文件再运行,你下载的软件都是源代码编译成的可执行文件。

㈢ 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)。

㈣ c语言中的源程序必须经过编译连接生成可执行程序才能运行,这句话是对不对

哥们,这么理解是对的,不过感觉有点表面。
建议看看计算机一些原理,像你说的这个问题我会想到,计算机最终只能识别二进制码,
所以其实不管我们一切啥语言,最终都是通过编译器编译成二进制码,计算机才能识别
而去运行,而c语言编写的程序,肯定是要经过一系列的编译,链接,生成可执行的文件。
在windows系统中,执行文件都是.exe为扩展名的。不过在linux系统中就不一样了,linux
系统并不区分扩展名,所以也就无所谓什么.exe之类的文件,只要知道最终生成可执行的
二进制文件就可以了。

㈤ C语言的源程序必须通过什么和什么才能被计算机执行

编译和链接。

每一个C语言程序必须要经过编译和链接才能被计算机执行,编译是将C源码翻译成机器码,链接是将将二进制目标文件装配成一个具有特定格式的二进制可执行文件,比如Windows平台上是PE格式,一般以.exe为扩展名。

一个C语言程序从源码到计算机系统可以执行,更细致的划分为:预处理——编译——汇编——链接。预处理是对C语言源码进行文本处理,编译阶断是将C源码经C编译器生成汇编代码,汇编阶断是将汇编代码经汇编器生成二进制机器码文件。这两个合拢起来,笼统的可以叫做编译阶断。

㈥ 一个C语言源程序经过编译后就可以执行了 这句话对吗

对的,C语言是先编译后执行,一般只要不出错误,编译完就可以执行力。有时候还要考虑是否跨平台。

㈦ 用高级语言编写的源程序,要转换为与其等价的目标程序,必须经过 编译。编译和解释的区别是什么啊

高级语言编写的源程序就是你直接写的代码,计算机读不懂。
编译你直接写的代码【源程序】会使源程序变成另外一种代码:汇编代码【最底层的源程序,所以单独分成一类】然后,汇编代码计算机业读不懂,但是他可以被方便的转换为计算机读得懂的010010101...这种代码,这种代码就是你要得到的东西【程序文件】,就是目标程序。

㈧ 高级语言编写的源程序必须经过______才能执行

C
高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类: 解释类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。 编译类:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(* .OBJ)才能执行,只有目标文件而没有源代码,修改很不方便。现在大多数的编程语言都是编译型的,例如Visual C++、Visual Foxpro、Delphi等。

㈨ 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( )。

答案是错误的,系统将生成目标文件,选B。因为C语言中编译程序是把一个源程序翻译成目标程序的工作过程。这一过程分为五个阶段:词法分析;语法分析;语义检查和中间代码生成;代码优化;目标代码生成。在语法分析过程中发现有语法错误,给出提示信息,没有错误则生成目标文件。

C语言通过汇编把汇编语言代码翻译成目标机器指令。对于被翻译系统处理的每一个C语言源程序,都将最终经过这一处理而得到相应的目标文件。目标文件中所存放的也就是与源程序等效的目标的机器语言代码。

(9)源程序只有经过编译扩展阅读

C语言的源文件成为目标文件的过程:

1、源文件经过预处理,生成.i的文件 (预处理器cpp)。

2、将预处理后的文件转换成汇编语言,生成文件.s文件。

3、从汇编变为目标代码(机器代码)生成.o(.obj)的文件(汇编器as)。

4、连接目标代码,生成可执行程序(连接器ld)。

㈩ 汇编源程序经过编译后是什么谁能提供,我想看一下。谢谢

汇编程序编写的一般过程:

1、编辑:EDIT 文件名.ASM

2、汇编:MASM 文件名;
用.ASM(源文件)生成.OBJ(目标文件),
也可生成.LST(列表)、.CRF(交叉引用)

3、连接:LINK 文件名;
用.OBJ文件生成.EXE(可执行文件)
也可生成.MAP(存储映象),
还可使用.LIB(库文件)

4、调试:DEBUG 文件名.EXE
按每个模块(子程序)的输入输出关系检查

即编译后生成obj文件,链接后生成exe文件

热点内容
副武器脚本 发布:2024-09-21 05:37:30 浏览:126
隐藏频道密码是多少 发布:2024-09-21 05:32:21 浏览:121
触动精灵脚本制作教程 发布:2024-09-21 05:13:14 浏览:399
自己编译autojs 发布:2024-09-21 05:09:40 浏览:358
我的世界电脑版无政府服务器 发布:2024-09-21 04:55:36 浏览:836
时间服务器和笔记本电脑同步 发布:2024-09-21 04:48:04 浏览:762
无权限访问工作组的计算机 发布:2024-09-21 04:26:31 浏览:476
为什么ipad需要密码解锁 发布:2024-09-21 04:06:22 浏览:211
mariadb存储过程 发布:2024-09-21 03:56:05 浏览:515
压缩壳脱壳机 发布:2024-09-21 03:14:33 浏览:94