A. C语言源程序文件经过编译连接之后生成一个后缀为_____的文件。
如果只生成一个文件,那么这个题目答案是B。编译(compile)后生成目标文件,后缀:.obj。也就是机器码。
然后链接器(Linker) 连接生成可执行文件,后缀:.exe。最后运行命令(go),直接运行.exe文件。
(1)编译之后形成什么不能直接运行扩展阅读:
简单讲,编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。
一个现代编译器的主要工作流程:源代码(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++中在编译后得到的目标文件为什么不能直接运行
因为你在VC的VC程序使用的库,例如插座写此套接字时VC的功能WINSOCK.H头文件并在Linux系统下的编辑器,当然是克+ + netinet / in.h中没有将编译。与VC编译器生成你必须编写这些过程连接库给你一份好工作的目标文件。但在其他编辑器如g + +这些都必须编写自己的makefile文件来完成。
C. c语言用vc++6.0编译生成的exe文件为什么不能直接运行
就是选择了Win32ConsoleApplication后,再新建一个空工程,再新建一个.cpp的程序,在命名时直接命为***.c即可。代码直接写在.c文件中啊。然后编译链接后在Debug文件夹内就有.exe文件了。
D. c语言中编译后得到的目标文件为什么不能直接运行,必须连接后才能运行
一编译单元(一个c文件)就会得到一个目标文件,而最终程序是一个EXE。所以需要链接。
同时链接需要按照操作系统的可执行文件格式要求组织。
E. 编译后的可执行程序为什么不能独立运行
如果你的程序调用了一些第三方的插件、组件等扩展程序,则运行时也必须带上这些程序的支持文件(通常是一些dll文件),另外,如果你的程序需要调用一些外部资源如图片、音乐、视频等,运行时也必须带上它们,最典型的就是如果你的程序使用了数据库,那么牵涉的方面就太多了,必须保证运行环境支持你所需的数据库格式,还要附带数据文件,必要时还必须进行数据转换和升迁。总之,如果遇到这些情况,你的可执行程序就不可能做到完全独立运行。
F. vc++编译出来后自动产生了debug文件里面的exe文件为什么不能直接运行
是这样,你在新建VC++工程的时候,其中有一项是选择将MFC库作为共享的DLL还是静态的DLL。
因为MFC程序在运行时需要一些
DLL文件
的支持,你从
集成开发环境
下编译运行时,有默认的路径来调用这些所需的DLL,因此运行不会有问题。而当你单独运行文件夹下的
可执行程序
时,
如果一开始
选择的是作为共享的DLL,则就会因为可执行程序的当前路径下没有所需的DLL文件而无法运行。
解决方法:
一种是打包程序,生成程序的安装包,就像商业软件一样。
另一种就是采用作为静态的DLL方式,即将程序要用到的库集成到生成的exe程序中。这样程序会稍稍大一点点,相当于一个
绿色软件
。你可以点击工程菜单下设置菜单项,常规
选项卡
,选择作为静态的DLL,重建工程就可以了。
G. 执行C语言一定要先编译么,不可以直接执行么
一般来说编译过后就成了基本上能执行的2进制代码。但是这些2进制代码并不完善,一个程序往往需要调用不止一部分的代码,所以需要把这些代码全部整合起来才能执行。
即时你的程序看起来只有一个文件,但是编译过后,多多少少里面至少会调用到一些操作系统功能,和其它的一些设置,所以依然需要组建这个过程把这个程序和这些系统默认的代码组建起来形成一个完成、单一的可执行文件。所以一般组建过程就包含了组建内部和外部代码,一般来说内部代码就是我说的系统预留的必要的一些代码(例如怎么具体完成把一些字符显示在屏幕上呀这些功能),而外部代码就是额外的调用自己写得或者别人写得其它程序功能(往往当你的程序调用了非c标准函数的时候)。
所以就算你的代码可以编译,但是可能因为组建并不成功(例如需要组建的代码本身有bug,或者丢失,或者版本不匹配),你的程序依然可能无法正确运行。
H. 为什么用code blocks编译出来的程序生成的exe文件不能直接运行,运行就会出现这个缺少dll文件问题
你全部重新编译一次就好了,或者换个编译器,例如devc++,编译完只剩下一个EXE程序
I. 请说明编辑、编译、连接的作用。在编译后得到的目标文件为什么不能直接运行
编辑指源代码的编辑,编译将源文件编译为机器目标文件,
但这时还不能运行,通过连接将符号连接,入口点等设置好
后才可运行。
J. 为什么我的程序编译完成后不能运行
首先确定jdk和自己的系统一致 X86对应32 X64对应64在 此次下载
win7环境变量配置 (Xp等系统略有不同)
1.右键计算机 —> 属性 —> 左边的“高级系统设置” —> “高级”选项卡 —> 下面“环境变量”系统环境变量
变量名 值
classpath 点分号默忘记了-----》 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME\lib\tools.jar;
path 点分号默忘记了-----》 .;%JAVA_HOME%\bin
上面之间复制 .;%JAVA_HOME% 是调用jdk的安装路径
这样 升级jdk后 只需要修改jdk版本号就ok了 即只需要改一个变量值即JAVA_HOME的
下面的变量名复制 安装路径复制
JAVA_HOME F:\Program Files\Java\jdk1.6.0_31
在运行 java和javac命令 正常则为成功
导致运行找不到文件的问题
第一种情况
首先在确定文件名 是否有隐藏后缀名的问题 即文件名实际是X.java.txt 出现这种情况就要 修改操作如下
win7 在控制面板(大图标模式) 找文件夹选项 在点击查看 取消以勾选的隐藏已知文件的扩展名
Xp 把桌面我的电脑打开 在弹出对话框上面找到文件夹选项 后面操作基本相似然后修改 文件后缀名(扩展名)
第二种 情况 范珐顿貉塥股舵瘫罚凯 运行也可以使用下面的 javac 和java命令
你jdk安装在c盘 而文件在其他盘 导致的这时dos界面运行命令应该先是
X: X代表盘符 即进入X盘
cd/X 这X代表文件夹名 进入文件夹
在运行 javac x.java x.java是文件名 编译文件检测语法错误
java x x 代表文件名 但没有扩展名
另外可以下载eclipse 运行java
这样就完成了