使用VS的都知道,在编译的时候,会有debug和release俩中模式,那么这俩种模式到底有什么不同呢?
首先我们要明确的是Debug和Release模式并没有本质的区别,他们编译的都是同一份源码。
Debug通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。
Release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。(一般客户不允许在发布版本上进行调试,所以他不保存调试信息)
区别
唯一区别就是,VS开发环境编译选项的区别。
那么为什么有些代码在debug中运行没有问题,但是在release版本下运行就会出现问题呢?
1.首先既然在debug模式下运行通过,那就是代码没有问题。
2.因为唯一区别是编译选项不同,所以出错可能就是一些编译设置的问题导致的。
出错原因:
再调用第三方库的时候,Debug和Release模式的编译选项和第三方库的编译选项不对应。
解决方法:
在Release模式下,打开项目工程的属性页后,展开“C/C++”,单击“代码生成”,更改“运行库”的选项,改为“多线程调试(/MTd)”。