程序debug不崩溃release崩溃的问题

农村的我 2017-01-11 05:45:36
敢问技术去的大神们,有没有遇到用vs2010写的qt程序,debug调试运行据正常,release下F5起来也正常,但是,单独运行release下的exe却出现程序崩溃问题?一般是什么会是原因?谢谢了
ps:qt版本是4.8.5,之前有装过qt5,后来卸载掉了.
...全文
2633 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
baidu_28726667 2019-03-20
  • 打赏
  • 举报
回复
不要使用一些debug模式下才有用的函数来++变量。很容易出问题
csdnwingwu 2019-03-18
  • 打赏
  • 举报
回复
应该是有变量没有初始化。成员变量,或局部变量!
csdnwingwu 2019-03-18
  • 打赏
  • 举报
回复
应该是有变量为初始化。成员变量,或局部变量!
初槿桴年 2019-03-14
  • 打赏
  • 举报
回复
楼主,你是怎么解决的,我遇到了相似的问题,编译的一个模块的dll在DEBUG下可以运行,在release下崩溃,ntdll.dll啥的崩溃
亭台六七座 2018-08-03
  • 打赏
  • 举报
回复
删除之前生成的文件

1、build-*文件夹
2、*.user文件
3、ui_*.h头文件
农村的我 2018-05-16
  • 打赏
  • 举报
回复
引用 7 楼 fuuhoo 的回复:
你好,请问如何用windbg调试dump文件啊。。。怎么定位的?谢谢
https://blog.csdn.net/chinabinlang/article/details/49491813
fuuhoo 2018-05-16
  • 打赏
  • 举报
回复
你好,请问如何用windbg调试dump文件啊。。。怎么定位的?谢谢
gongzf111 2017-01-12
  • 打赏
  • 举报
回复
引用 5 楼 business122 的回复:
[quote=引用 4 楼 u013914992 的回复:] release一般都是静态编译后生成的工程文件,而debug是动态编译的。后者编译完运行时会自动连接程序内部所需的库。要想前者编译后运行正常,那你需要配置一个静态编译的环境,用这个静态编译的环境编译生成的release目录下的文件可以直接运行,因为把你程序所需的库也编译进去了。
受教了。请问,这个静态编译环境是指vs2010的配置还是,其他依赖的运行环境,还是其他的,好抽象。。。[/quote] 我没有在VS的环境下编写过QT,我的静态环境是在Windows下配置的,用这个静态环境编译出来完成后在release文件目录下就会生成.exe可执行文件。但是我觉得大同小异吧。。 Windows下的QT静态环境配置挺复杂的,首先配置gcc编译器、Perl、pyth,然后进入qt源码目录输入如下目录进行编译 configure.bat -confirm-license -opensource -platform win32-g++ -mp -debug-and-release -static -prefix "C:\Qt\5.6.0_MinGW_static" -qt-sql-sqlite -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -qt-freetype -no-qml-debug -no-angle -nomake tests -nomake examples -skip qtwebengine -skip qtwebview -skip qt3d 编译完成后输入 mingw32-make,然后输入 mingw32-make install进行安装,至此在C:\Qt\下就找到这个编译好的静态环境5.6.0_MinGW_static了,最后,我把这个环境添加进我Windows下的QT create,进行相关配置后就完成了。编写完程序在构建时选择刚刚添加进去的静态环境进行构建,则在release目录下的文件就可以在任意平台执行!
农村的我 2017-01-12
  • 打赏
  • 举报
回复
引用 4 楼 u013914992 的回复:
release一般都是静态编译后生成的工程文件,而debug是动态编译的。后者编译完运行时会自动连接程序内部所需的库。要想前者编译后运行正常,那你需要配置一个静态编译的环境,用这个静态编译的环境编译生成的release目录下的文件可以直接运行,因为把你程序所需的库也编译进去了。
受教了。请问,这个静态编译环境是指vs2010的配置还是,其他依赖的运行环境,还是其他的,好抽象。。。
gongzf111 2017-01-12
  • 打赏
  • 举报
回复
release一般都是静态编译后生成的工程文件,而debug是动态编译的。后者编译完运行时会自动连接程序内部所需的库。要想前者编译后运行正常,那你需要配置一个静态编译的环境,用这个静态编译的环境编译生成的release目录下的文件可以直接运行,因为把你程序所需的库也编译进去了。
农村的我 2017-01-11
  • 打赏
  • 举报
回复
引用 2 楼 xqhrs232 的回复:
访问越界了!!!非法操作内存空间了!

这个确实是,关键debug就没有这样的问题,而且到后来都是崩到这个地方
我怀疑是不是依赖的dll版本不对,求指教
xqhrs232 2017-01-11
  • 打赏
  • 举报
回复
访问越界了!!!非法操作内存空间了!
农村的我 2017-01-11
  • 打赏
  • 举报
回复


dmp文件显示的错误信息是这样的,求大神指定,在线等,急急急!!!!

16,203

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧