为啥debug编译可以通过,release就无法解析外部符号

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥debug编译可以通过,release就无法解析外部符号相关的知识,希望对你有一定的参考价值。

最好看看完整报错信息,你贴的信息不全。
你可以尝试一下如下两个办法:
1·修改工程配置,将release版配置设置为使用mfc(或atl)静态库,确认,完整重新编译。
2·对照工程设置中release版本和debug版本的输入库配置是否相同,如果不同,则改正。
参考技术A 第一次使用vc
我也遇到这样的情况,后来只能用Debug编译,然后在没有装vc的机子上运行(好像要装microsoft.net
frame)
后来就把该exe文件和C:\Program
Files\Microsoft
Visual
Studio
9.0\VC\redist\x86\Microsoft.VC90.CRT
目录下的几个文件
一起打包
我是用release+静态编译做的,和你出现的错误一样,但用到了一些外部库(可能原因就出在这里)在属性-〉代码生成中有个DLL/MT或MTD的选择

debug运行可以,release运行报错的原因及修改方法

通常我们开发的程序有2种模式:Debug模式和Release模式
在Debug模式下,编译器会记录很多调试信息,也可以加入很多测试代码,方便我们程序员测试,以及出现bug时的分析解决
Release模式下,就没有上述那些调试信息,而且编译器也会自动优化一些代码,这样生成的程序性能是最优的,但是如果出现问题,就不方便分析测试了,
Release模式通常用于正式发布。
原因:
debug运行比release少一些文件,qt保证能在debug下运行,但并不能保证它在release下就能正常运行。
修改方法:
1.首先保证你是在release条件下运行项目

如上图所示

2.打开项目运行后生成的文件,如:项目名-Desktop_Qt_5_6_1_MSVC2013_64bit-Release,打开release文件,在里边添加Qt5Widgets.dll、Qt5OpenGL.dll、Qt5Gui.dll、Qt5Core.dll和文件platforms、imageformats;Qt5Widgets.dll、Qt5OpenGL.dll、Qt5Gui.dll、Qt5Core.dll从Qt->Qt5.6.1->5.6->msvc2013_64->bin中查找;文件platforms、imageformats从Qt->Qt5.6.1->5.6->msvc2013_64->plugins中查找。添加过这几个文件后,你就可以双击release文件里的项目名文件进行运行,如果还缺少文件,就按照上面步骤继续向release文件里添加,直到运行成功。

以上是关于为啥debug编译可以通过,release就无法解析外部符号的主要内容,如果未能解决你的问题,请参考以下文章

C++中debug和release的区别? 为啥debug没问题的程序release之后就出问题了?

在C#中Debug和Release两种调试方法出来结果不同,求问为啥?

为啥C++的exe文件在另一台计算机无法运行?

为啥DEBUG版本正确,Release版本错误

为啥Debug无错误Release出现错误?

c语言怎么从debug模式到release模式?