• 关于bin和obj文件夹。debug 和release的区别(转)


     

    关于bin和obj文件夹。

    楼主hcaihao(影子男孩)2002-05-29 20:04:24 在 .NET技术 / C# 提问

    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目录里的东西!  
       
      各位说说,我是不是可以去写书了?   :)

  • 相关阅读:
    用vue ui创建的项目怎么关闭eslint校验
    SQL修改表约束实现
    获取微信公众号的粉丝openid以及用openid获取unionID
    怎么停掉或关闭运行的npm run dev
    .NET解密得到UnionID
    微信获取信息发生错误(两个access_token的区别),错误代码:40001,说明:invalid credential, access_token is invalid or not latest hints
    微信获取不了用户头像等信息
    微信sdk上传图片大小1k,损坏的问题以及微信上传图片需要的配置
    微信订阅号中获取openid以及个人信息
    Bootstrap中宽度大于指定宽度时有空白的解决方法
  • 原文地址:https://www.cnblogs.com/yzl495/p/4617822.html
Copyright © 2020-2023  润新知