⑴ c语言中编译后得到的目标文件为什么不能直接运行,必须连接后才能运行
一编译单元(一个c文件)就会得到一个目标文件,而最终程序是一个EXE。所以需要链接。
同时链接需要按照操作系统的可执行文件格式要求组织。
⑵ 编译程序和解释程序均能产生目标程序吗
不能
因为:编译程序能产生目标程序而解释程序则不能
补充:解释程序也称为解释器,它或者直接解释执行源程序,或者将源程序翻译成某种中间表示形式后再加以执行;编译程序(编译器)则是将源程序翻译成目标语言程序,然后在计算机上运行目标程序。两种语言处理程序的根本区别是:在编译方式下,机器上运行的是与源程序等价的目标程序,源程序和编译程序都不再参与目标程序的执行过程,而在解释方式下,解释程序和源程序(或某种等价表示)要参与到程序的运行过程中,运行程序的控制权在解释程序。解释器翻译源程序时不生成独立的目标程序,而编译器则将源程序翻译成独立的目标程序。
⑶ 编程是干嘛的
编程的目的是为了使计算机能够理解人的意图,使得计算机能够根据人的指令一步一步去工作,将需解决问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,完成某种特定的任务。编程是人和计算体系之间交流的过程,因为计算机对除机器语言以外的源程序不能直接识别、理解和执行,所以编程就是对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。编程有两种方式:解释方式和编译方式。
1、解释方式:计算机对高级语言书写的源程序一边解释一边执行,不能形成目标文件和执行文件。
2、编译方式:通过一个对应于所用程序设计语言的编译程序对源程序进行处理,经过对源程序的词法分析、语法分析、语意分析、代码生成和代码优化等阶段将所处理的源程序转换为用二进制代码表示的目标程序。收起
⑷ 为什么我用gcc编译c程序到最后无法自动生成一个exe程序
gcc 是 Linux 系统下面的 C 语言编译器。它和 WINDOWS 系统下面的 Microsoft Visual Studio C++ 6.0 不同,在 WINDOWS 系统下面对任何的一个源程序,经编译、链接、到最终生成的所有可执行程序必定都是以 *.exe 结尾的,*.exe 是 WINDOWS 系统下面的可执行程序的后缀;而 gcc 对 C 语言进行编译,并没有规定可执行程序的具体名字到底是什么。举例如下:
$gcc my_program.c <cr>
如果在命令行中,没有带任何参数的话,如果 C 语言源程序没有任何语法错误的话,那么生成的缺省的可执行文件就是:a.out;
$gcc my_program.c -o my_runfile <cr>
如果在命令行中,指定:-o 参数,代表对 my_program.c 进行编译后,生成的可执行文件名为:my_runfile。
同理,在进行命令行编译过程中,只要指定了 -o 参数,那么你后面的可执行文件名,就随便由你自己决定了,这个就没有一定之规了。
⑸ 用高级语言编写的源程序必须经过编译,产生目标程序后才能运行,这句话对吗为什么
目标程序不能运行,必须再经过连接成可执行文件才能运行。
而且像java 和c#的程序编译后也不是目标程序。
⑹ 编译程序和解释程序有何区别
编译程序能生成目标程序,而解释程序不能。