关于bin和obj文件夹。debug 和release的区别(转)
关于bin和obj文件夹。
VS.Net会生成bin和obj文件夹以及它们下面的Debug和Release文件夹共4个,谁能告诉我分别有什吗作用? 问题点数:0、回复次数:4Top
bin是放最终代码的目录   
  obj就放中间代码的目录   
    
  release和debug是不同的运行方式  
  debug会增加调试代码,方便调试。调试完后,用release版本发布,没有调试代码,减小程序体积,加快执行速度!Top
既然obj就放中间代码的目录,为什吗还要release呢?同理,既然bin是放最终代码的目录还要debug干什吗?不是多此一举吗?Top
哎!   
  一、先说说   编译:  
    编译一个源程序文件,要经过
语法、类型,甚至要判断执行时的可行性等。   
   
是一个对文件多次扫描的过程,最后还有代码优化的过程。会有一大堆的中间文件产生。vc6下的一个mfc项目   obj目录里会有好几M的中间(临时)文件。   
 
再复杂点,一个project有图片(声音)等资源文件,要调用其他DLL类库(可能是.net组件,可能是com),还可能由多个.cs文件组成。要把
这么多东西连接在一起。以前在DOS下用C或PASCAL,要先编译成.obj文件,再用link.exe连接在一起,才是一个exe文件。(记得
pascal还是fortran要用两个编译程序才能得到一个.obj的中间文件)   
    结论:编译需要大量的中间文件存放临时结果,为下一步做准备。C#是面向对象的复杂度更高!obj目录就是用来存放临时文件的!   
   
  二、debug   &   release   
 
debug调试,你在程序中设置了断点,为什么vs.net知道在那里要停下来,当你把鼠标移到某个变量上,vs.net就会显示它当时的值?   
   
因为编译器在代码中添加了许多调试需要的代码,可以让vs.net得到,返回给你。   
    这些代码当然是要占用空间和时间的,在你的程序调试完了后,可以正确运行了。完全可以去掉这些代码,这时候就应该用Release模式了。  
    
  不管Debug还是Release模式,都要编译,都有中间临时代码产生,所以obj目录下有debug  
release目录。两种模式编译的结果,就放在bin目录下。   
  编译完后,中间临时代码是没什么用的了,所以一般不管obj目录里的东西!  
    
  各位说说,我是不是可以去写书了?   :)
关于bin和obj文件夹。debug 和release的区别(转)的更多相关文章
- C#快速删除bin和obj文件夹的方法
		
C#程序总会生成bin和obj文件夹,为了减小源码的大小,就有必要将这两个文件夹删除,于是想到用批处理文件来删除. 以下是批处理的代码: @echo offset nowPath=%cd%cd /cd ...
 - C++工程文件夹中的bin和obj文件夹有何用处?(补充多文件结构)
		
博主在使用Code::Blocks创建一个工程之后,正准备新建一个头文件,细心的博主发现,在工程文件夹中有两个子文件夹,分别是bin和obj.好奇心驱使下,想知道这两个文件夹用来干嘛的,网上搜了下,整 ...
 - Visual Studio Debug和Release的区别及obj的作用
		
一.Debug和Release的区别 1.Debug:调试版本,包含调试信息,所以容量比Release大很多,并且不进行任何优化(优化会使调试复杂化,因为源代码和生成的指令间关系会更复杂), ...
 - 关于VS项目平台的x86,x64,Any CPU以及Debug和Release的区别
		
相信对于很多刚接触打包程序的同志来说,关于x86,x64,Any CPU这三个项目平台,以及解决方案配置Debug和Release有什么区别?这个问题一定有许多的困惑,甚至不乏一些已经工作了很久的老程 ...
 - C++中debug和release的区别 . 转载
		
vc中debug和release的不同 收藏 在使用VC开发软件的过程中,正当要享受那种兴奋的时候突然发现:release与debug运行结果不一致,甚至出错,而release又不方便调试,真的是当 ...
 - Debug和Release版本区别
		
Debug和Release版本区别 众所周知,我们尽心iOS开发,在Xocde调试程序时,分为两种方式Debug和Release,在Target的Setting中相信大家应该能看到很多选项分别为Deb ...
 - POPTEST老李谈Debug和Release的区别(c#)
		
POPTEST老李谈Debug和Release的区别(c#) poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣 ...
 - POPTEST老李谈Debug和Release的区别(c#) 1
		
POPTEST老李谈Debug和Release的区别(c#) poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣 ...
 - 关于c# Debug和Release的区别 (转)
		
关于Debug和Release的区别之讨论本文主要包含如下内容: 1. Debug 和 Release 编译方式的本质区别2. 哪些情况下 Release 版会出错2. 怎样“调试” Release ...
 
随机推荐
- Android 代码设置RelativeLayout元素居中
			
RelativeLayout relativeLayout= new RelativeLayout(this); RelativeLayout.LayoutParams rlp=new Relativ ...
 - Android「后台下载」Feb.24小记
			
参考了CSDN上的这个文章(HERE),之前只是新开一个线程: public class DownloadThread implements Runnable{ String tarFile ; pu ...
 - [CQOI 2015] 任务查询系统
			
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=3932 [算法] 首先 , 我们可以将(Si , Ei , Pi)转化为在Si处加入P ...
 - 【POJ 2407】 Relatives
			
[题目链接] 点击打开链接 [算法] 欧拉函数 [代码] #include <algorithm> #include <bitset> #include <cctype& ...
 - 【扬中集训Day6T1】 白日梦
			
[题目描述] 白日梦 (daydream.c/cpp/pas) 时间限制: 1 s 空间限制: 256 MB 题目描述 SR需要相当大的睡眠量 某日,他做了一个奇怪的梦,他梦见自己成为了怪物猎人,为 ...
 - bzoj1925地精部落——数学
			
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1925 真是精妙的递推式...好难想到啊: 详见这位的博客:https://www.cnblo ...
 - 022--python 模块介绍和time模块
			
一.模块的含义 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代 ...
 - 008--linux 基础之网络配置和ssh服务
			
一.linux网络配置 ifconfig eno16777736 192.168.19.48/24 | eno16777736(网卡名) 192.168.19.48/24(临时IP地址) ...
 - Codeforces645B【树状数组求逆序数】
			
题意: 给你1-n的序列,然后有k次机会的操作,每一次你可以选择两个数交换. 求一个最大的逆序数. 思路: 感觉就是最后一个和第一个交换,然后往中间逼近,到最终的序列,用树状数组求一下逆序数. #in ...
 - BestCoder Round #73 (div.2)1002/hdoj5631
			
题意: 给出一张 nnn 个点 n+1n+1n+1 条边的无向图,你可以选择一些边(至少一条)删除. 分析: 一张n个点图,至少n-1条边才能保证联通 所以可以知道每次可以删去1条边或者两条边 一开始 ...