Qt 调试版和 Qt 发布版有啥区别?
Posted
技术标签:
【中文标题】Qt 调试版和 Qt 发布版有啥区别?【英文标题】:What's the difference between a Qt debug version and the Qt release version?Qt 调试版和 Qt 发布版有什么区别? 【发布时间】:2012-01-12 03:59:40 【问题描述】:在许多情况下,在调试版本中运行的代码在发布版本中无法正常运行。我总是遇到这些问题,就像地震发生一样。哪位大啤酒可以帮我想想?
【问题讨论】:
调试版本通常更慢、更大并且占用更多内存。它们具有调试符号,使调试成为可能且更简单。发布版本已去除所有非生产信息。 这是 Qt 特有的问题,还是 any 软件的调试/发布版本? 【参考方案1】:一般来说,如果一个应用程序在调试中工作但在发布时不能工作,那是因为某些变量或内存没有正确设置为初始值。
在调试版本中,变量和内存通常设置为零,但在发布中,此步骤被跳过以节省时间。还会在对象周围添加额外数据并分配内存作为检测内存覆盖的屏障。
有时(很少)发布版本中的优化会引入错误
【讨论】:
如此真实!可以补充一点,使用 valgrind 可以帮助确定此类问题的根源。 @FFox 太真实了!我在 2 个月内遇到了一个错误(显然是无害的),valgrind 发现我的像素数组由于错误实现的轮函数而溢出。 @Martin 无意中在 QT 中发现了你的一条消息,但前几天被跟踪了。 :) @Karlphillip - 我还没有找到适用于 Windows 的 valgrind 替代方案。在 Dr Memory 中运行 Qt 应用程序会为每个 Qt 调用生成警告!以上是关于Qt 调试版和 Qt 发布版有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章