Debug下正常运行,但调成Release时遇到三个问题及其完美解决!

-------------------------------------------------------------------------------------------------------------------------------------------

最近开发了一个MFC程序并需要生成Release模式,程序中用到了MySQL数据库。之前开发的时候一直用的是Debug模式,在改成Release模式后出现三个错误,并进行解决。

-------------------------------------------------------------------------------------------------------------------------------------------


本以为debug改成Release版本只需要将“启动调试”绿色三角箭头右边的“解决方案配置”改成Release即可,谁知出现了问题!



错误一

首先 出现的错误主要是:error C1083: 无法打开包括文件:“StdAfx.h”: No such file or directory  



错误一解决方案:

在项目属性中展开【C/C++】,选择【常规】,在附加包含目录里加入“$(ProjectDir)”   如下图所示:




错误二

问题一解决后重新编译了一下还是有错:



错误二解决方案:

由于项目中用到了MySQl数据库,之前在Debug版本模式下遇到过类似的问题:http://blog.csdn.net/to_baidu/article/details/58711588 

问题主要原因在于Release模式下,有关mysql的静态库没有设置,因此在Release设置添加相应的libmysql.lib、libmysql.dll库即可。

设置步骤如下:

step1:将工程文件Debug目录下的libmysql.dll拷贝到Release文件夹(因为我之前自己从网上下载拷贝到Debug文件夹中,若读者没有libmysql.dll文件可从下面的连接中下载:http://download.csdn.net/detail/to_baidu/9770882



step2:在项目工程的【属性】——【连接器】——【输入】——【附加依赖项】中添加:libmysql.lib  前提是项目的库目录中有libmysql.lib(此处就不再赘述了,这涉及到C/C++连接MySQL数据库,相关链接如下:http://blog.csdn.net/to_baidu/article/details/58709499



错误三

主要问题:无法找到入口

如下图所示:



问题三解决方案:

将Release下属性 链接器--优化--【引用】 由“是 (/OPT:REF)”改为“否 (/OPT:NOREF)



大功告成!之前在Debug版本下经常出现的登录界面总算完美出现了,程序也可以正常使用。





Debug模式下,编译器会为程序生成一些额外的信息,例如符号表等,以方便调试。这些信息会增加程序的体积和运行间,但也使得程序更加容错,更容易调试。因此,Debug模式下的程序往往比较稳定,而且运行速度较慢。 在Release模式下,编译器会对程序进行一些优化,以提高程序的运行速度和效率。例如,编译器可能会对循环进行优化,使用更高效的算法等。这些优化可能会改变程序的行为,导致程序在Release模式下出现问题,而在Debug模式下正常运行。 常见的在Debug模式下可以运行,在Release模式下运行失败的原因包括: 1. 未初始化变量:在Debug模式下,编译器会将未初始化的变量初始化为默认值,而在Release模式下则不会。因此,如果程序依赖于未初始化的变量的默认值,就可能在Release模式下出现问题。 2. 内存泄漏:在Debug模式下,编译器会为每个动态分配的内存块添加一些额外的信息,以便检测内存泄漏等问题。而在Release模式下,这些额外的信息会被省略,导致内存泄漏等问题难以被发现。 3. 未定义行为:在Debug模式下,编译器会对代码中的未定义行为进行检测,并给出警告或错误。而在Release模式下,编译器可能会忽略这些未定义行为,导致程序出现问题。 4. 依赖于调试信息:在Debug模式下,程序中可能会依赖于一些调试信息,例如符号表等。这些调试信息在Release模式下可能会被省略,导致程序出现问题。 如果程序在Debug模式下正常运行,但在Release模式下出现问题,可以考虑以下几点: 1. 检查是否有未初始化的变量或内存泄漏等问题。 2. 查看编译器的警告和错误信息,修复代码中的未定义行为等问题。 3. 尝试关闭编译器的优化选项,或调整优化级别,以查看是否能够正常运行。 4. 在Release模式下启用调试信息,以便调试程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值