编译调试的意思
㈠ 请问编译,调试和运行分别有什么区别呢
编译是把源文件转化为目标文件,即是把obj文件链接成exe文件。
调试则是为了找出在程序中的错误。
链接成可执行文件.exe,这时才可以运行,运行就是你要的结果。
㈡ 编程里面的调试,编译,链接,生成解决方案,执行这些都是什么意思呀,MVC,VC++,VS里面快捷键都是啥
编译,源代码(c/cpp)->目标文件(o/obj)
链接,目标文件->可执行文件(exe)/动态库文件(dll)
生成解决方案:一个解决方案可能包含不止一个可执行文件/动态库文件,生成解决方案会构建出解决方案下面所有的东西
执行:运行一个做好的exe文件
调试:在监视模式下运行,这种模式可以随时停止程序的执行,然后对照源代码查看变量,内存等,用于解决bug。
具体快捷键请自行熟悉所用的开发环境。
㈢ C语言中编译 生成 调试 测试 运行各是什么意思有什么区别
C语言中编译 生成 调试 测试 运行的区别如下:
区别一:
从编译方面来看:
编译依赖于编译器,英文是compile, vc中这一过程是将源代码转换成目标文件,如:obj文件,rc文件等。
区别二:
从生成方面来看:
生成指的是连接的过程,英文是build,依赖于链接器。vc中在这一阶段将所有的目标文件和所有需要用到的组件组合成一个整体,例如需要生成的是windows系统下的PE可执行文件,链接器会依照特定格式将目标文件组合,最后生成PE格式的,exe或dll文件。
区别三:
从调试方面来看:
调试是所有或部分代码编写完成后,让程序在调试器中运行,用这种手段对程序进行分析,找出并修正潜在问题。
区别四:
从运行方面来看:
运行就是让程序在系统中运行。
(3)编译调试的意思扩展阅读:
C语言的介绍:
C语言是目前流行的通用程序设计语言,是计算机专业人员和计算机爱好者开发软件的首选开发工具。C语言源程序必须经过某种编译工具翻译成为目标机器语言程序才能够在计算机上执行。
然而随着程序编写规模的扩大,顺利编写出正确的程序绝非一件容易的事情,早期的许多编译工具仅仅提供翻译功能,已满足不了应用的要求,编程人员需要-种功能全面并高度集成的编译环境。
程序是一段具有一定功能的代码,编写程序的目的是解决问题。当程序人员写完程序后,其实并不起作用,只有当编写的程序经过一系列的处理后,能够解决问题时。
序才成为真正的程序,这一系列的处理过程,-般就是编辑、编译、连接、调试与运行等。目前最成熟的C语言集成环境主要有Turbo C2.0和Turbo C 3.0( 简称TC30)或Borland C++3.1( 简称BC31)以及Visual C++ 6.0。
㈣ 编译和调试的区别
编译和调试都是写程序的重要环节。它们两者有什么区别呢?下面,我跟大家分享一下编译和调试的区别。
1.编译和调试的区别
编译是编译器在你程序没有运行的时候帮你检查错误。
调试是你用调试器在程序运行以后,根据运行状况来检查错误。
这两者的不可逆的,首先得编译通过,你才能调试啊,编译正确后,会生成exe文件,IDE中启动程序,可以进行调试。
编译是把源代码变成二进制obj的过程(链接后成为可执行文件),当然会先帮你检查有无简单的语法问题,要不编译器人家不认识,你自己说的有无逻辑就和编译器无关了。
调试首先需要生成二进制代码,所以需要首先进行编译和链接,然后到断点后,调试器会帮你加int 3中断,就停住了。
编译关注语法错误,调试关注逻辑错误。也就是说编译关注的是syntax(语法)方面的问题,调式关注的是semantics(语义)方面的问题。
2.编译词法分析
词法分析的任务是对由字符组成的单词进行处理,从左至右逐个字符地对源程序进行扫描,产生一个个的单词符号,把作为字符串的源程序改造成为单词符号串的中间程序。执行词法分析的程序称为词法分析程序或扫描器。
源程序中的单词符号经扫描器分析,一般产生二元式:单词种别;单词自身的值。单词种别通常用整数编码,如果一个种别只含一个单词符号,那么对这个单词符号,种别编码就完全代表它自身的值了。若一个种别含有许多个单词符号,那么,对于它的每个单词符号,除了给出种别编码以外,还应给出自身的值。
词法分析器一般来说有两种方法构造:手工构造和自动生成。手工构造可使用状态图进行工作,自动生成使用确定的有限自动机来实现。
3.编译语法分析
编译程序的语法分析器以单词符号作为输入,分析单词符号串是否形成符合语法规则的语法单位,如表达式、赋值、循环等,最后看是否构成一个符合要求的程序,按该语言使用的语法规则分析检查每条语句是否有正确的逻辑结构,程序是最终的一个语法单位。编译程序的语法规则可用上下文无关文法来刻画。
语法分析的方法分为两种:自上而下分析法和自下而上分析法。自上而下就是从文法的开始符号出发,向下推导,推出句子。而自下而上分析法采用的是移进归约法,基本思想是:用一个寄存符号的先进后出栈,把输入符号一个一个地移进栈里,当栈顶形成某个产生式的一个候选式时,即把栈顶的这一部分归约成该产生式的左邻符号。
4.代码优化
代码优化是指对程序进行多种等价变换,使得从变换后的程序出发,能生成更有效的目标代码。所谓等价,是指不改变程序的运行结果。所谓有效,主要指目标代码运行时间较短,以及占用的存储空间较小。这种变换称为优化。
有两类优化:一类是对语法分析后的中间代码进行优化,它不依赖于具体的计算机;另一类是在生成目标代码时进行的,它在很大程度上依赖于具体的计算机。对于前一类优化,根据它所涉及的程序范围可分为局部优化、循环优化和全局优化三个不同的级别。
4.编译出错处理
如果编译过程中发现源程序有错误,编译程序应报告错误的性质和错误的发生的地点,并且将错误所造成的影响限制在尽可能小的范围内,使得源程序的其余部分能继续被编译下去,有些编译程序还能自动纠正错误,这些工作由错误处理程序完成。
需要注意的是,一般上编译器只做语法检查和最简单的语义检查,而不检查程序的逻辑。逻辑错误要通过调试。
我总结:
看完了上面的比较,你现在还能区别编译与调试吗?其实,只要记住这句话:“编译关注语法错误,调试关注逻辑错误,先有编译,后有调试”,就不会忘了两者的区别了。
㈤ c++编译器里的调试,编译,运行都是什么意思啊,有什么区别啊
出现这种情况的原因可能有很多,最常见的就是源代码和程序不匹配导致的,可以这样设置
工具-》选项-》调试
将其中的“要求源文件与原始版本完全匹配”的钩去掉,然后再试试看。
㈥ Virsul Studio 2008中的生成解决方案、编译、生成文件、调试分别代表什么意思
解决方案可以理解为一系列项目的组合.
实际的软件通常由有很多文件组合工作而成,比如一个主EXE文件,若干个DLL文件和其他资源文件.
其中,EXE文件,DLL文件在VS2008里均叫做项目,解决一个小问题.这些项目组合起来工作,解决一个大课题,就成为VS2008里面说的解决方案.
通俗点理解,解决方案就是一个大文件夹,里面可以放很多小文件夹(项目).
用解决方案最大的好处是代码都放在一起,可以很容易的从一个地方复制到另一个地方,不用作任何重新配置即可重新编译----可能这不是全部,但我目前就体会到这点好处~
明白上面说的,生成ABC就不是问题了,是单独生成解决方案中的一个小项目(而不是整个解决方案)的意思
另:
生成解决方案: 编译解决方案中的所有内容
编译 : 把你写的文本格式代码转换成电脑(主要是CPU)可以识别的二进制指令
调试 : 在特殊的环境中运行你写的程序,如果程序中有错误,这个环境会中断程序,并给你指出来哪里有错.
㈦ 嵌入式软件中GCC编译,汇编,链接,调试的作用
GCC:是一套由GNU工程开发的支持多种编程语言的编译器。将程序代码编译成机器语言。
编译:1、利用编译程序从源语言编写的源程序产生目标程序的过程。
2、用编译程序产生目标程序的动作。 编译就是把高级语言变成计算机可以识别的2进制
语言,计算机只认识1和0,编译程序把人们熟悉的语言换成2进制的。 编译程序把一
个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;语义检查
和中间代码生成;代码优化;目标代码生成。主要是进行词法分析和语法分析,又称
为源程序分析,分析过程中发现有语法错误,给出提示信息。
汇编:把汇编语言翻译成机器语言的过程称为汇编,在汇编语言中,用助记符(Memoni)代替操作
码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制
码,就把机器语言变成了汇编语言
连接:用来把要执行的程序与库文件或其他已经翻译好的子程序(能完成一种独立功能的程序
模块)连接在一起,形成机器能执行的程序。
调试:编好程序后,用各种手段进行查错和排错的过程。
㈧ 编译和调试的区别是什么
编译是编译器在你程序没有运行的时候帮你检查错误
调试是你用调试器在程序运行以后,根据运行状况来检查错误
在写程序的时候,两个环节都是需要的
顺便你看的书不太准确。所谓的文件中写上# include "afx.h"(或者其他头文件),那么就只需调试的时候检查使用的函数是否正确那只是TC罢了。如果用的vc或vs的话,那么只要你的afx.cpp在工程里面,就会进行编译