VS 配置管理器 debug_release,X86_X64,生成_部署

在创建项目后进入VS的首件事情就是配置环境,那么VS的配置管理器究竟做了什么呢?
一、选择release、debug。
详见:Debug与Release区别

  1. Debug、Release是什么?

VS的程序有Release和Debug两个版本。Debug即为调试版本,而Release是发行版本。只有debug版本才能设置断点、单步执行、使用TRACE/ASSERT等调试输出日志。Debug调试版本包含调试信息,不做任何优化,为开发人员提供。Release版本为发布版本,是为用户使用的。客户不允许在发布版本上进行调试,不保存调试信息。Release是会被自动优化的,程序效率更高。

  1. 区别:

1)运行时库:Debug版本采用了一些保护机制来帮助发现错误,Debug版本的Runtime Liabrary(运行时库)加强了错误检测,应当指出,如果Debug有错误,而Release版本正常,程序肯定是有 Bug的,只是我们还没有发现。
2)优化:
image.png
Debug一般是Od,即禁用编译器优化的。而Release一般是O2,创建最快速的代码。
编译器优化的部分可以通过汇编代码看到,至于优化了什么这里不再赘述。
3)初始化内存和变量:Debug版本会做一些初始化的工作。比如 在动态分哦欸u内存的前后加入保护内存防止越界访问。用很大的值来初始化指针以避免无法检测到指针越界等。
4)日志输出:在Debug版本ASSERT、TRACE才有用。Release版本默认NDEBUG。assert语句会被认为是空语句。
5)Debug和Release版本的DLL一定不能混用。
二、平台X86与X64
简单来说X86对应32位系统,X64对应64位系统。X86代表的不是字长而是8086处理器 ,这个处理器是32位的,所以X86对应32位系统。
代码层次上X86与X64的DLL是不互通的,项目不能直接迁移。在编码的层次上注意X86的char是4B,X64的char是8B(指针的寻址范围不同);long的长度不同,X86是4B,X64是8B。
在汇编的层次上,X86与X64的寄存器长度不同(CPU同时处理的数据位数不同),同理寻址范围也相差很大,指令集也不一样。
三、生成
在学生时代我们写代码都在调试的时候直接运行就可以了,但是实际上的开发软件时我们必须打包一个exe给用户或者生成一个库给其他人使用。VS提供了这一功能。调试完后把解决方案改成Release,把项目运行库改成多线程(项目属性->C+±>代码生成)。在重新生成这个项目,项目文件目录会有Release文件,里面的exe就是生成的。
生成动态库: 详情:http://t.csdn.cn/xUz5l

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值