项目场景:
同份源码C/C++中Release和Debug下编译结果不同
问题描述:
经常有同学问我明明是同一份代码,debug模式下没问题,但是只要release模式下编译就有问题,各种报错各种运行错误等。
原因分析:
首先debug模式和release模式下编译除了编译模式不一样外,其他其实都是一样的。debug模式下可以运行说明源码在debug模式下对应的编译选项下编译没有问题,为什么在release下就不行呢?其实大部分原因是因为我们在写程序时不可避免的需要调用第三方库,而又可能某个第三方库的编译模式和我们默认的release编译模式不一致所以造成。
解决方案:
这个时候我们需要更改编译环境,这里以VStudio为例:菜单栏打开配置——>配置属性——>C/C++——>代码生成——>运行库——>下面有几种模式,默认release模式使用的是/MT,我们需要更改为/MTD,如果是Dll源码则修改为/MDd。可以来回切换模式编译看看效果。好了今天的总结就到这里,谢谢观赏。