【问题标题】:What's the difference between a Qt debug version and the Qt release version?Qt 调试版和 Qt 发布版有什么区别?
【发布时间】:2023-03-29 23:34:01
【问题描述】:

在许多情况下,在调试版本中运行的代码在发布版本中无法正常运行。我总是遇到这些问题,就像地震发生一样。哪位大啤酒可以帮我想想?

【问题讨论】:

  • 调试版本通常更慢、更大并且占用更多内存。它们具有调试符号,使调试成为可能且更简单。发布版本已去除所有非生产信息。
  • 这是 Qt 特有的问题,还是 any 软件的调试/发布版本?

标签: debugging qt version release


【解决方案1】:

一般来说,如果一个应用程序在调试中工作但在发布时不能工作,那是因为某些变量或内存没有正确设置为初始值。

在调试版本中,变量和内存通常设置为零,但在发布中,此步骤被跳过以节省时间。还会在对象周围添加额外数据并分配内存作为检测内存覆盖的屏障。

有时(很少)发布版本中的优化会引入错误

【讨论】:

  • 如此真实!可以补充一点,使用 valgrind 可以帮助确定此类问题的根源。
  • @FFox 太真实了!我在 2 个月内遇到了一个错误(显然是无害的),valgrind 发现我的像素数组由于错误实现的轮函数而溢出。
  • @Martin 无意中在 QT 中发现了你的一条消息,但前几天被跟踪了。 :)
  • @Karlphillip - 我还没有找到适用于 Windows 的 valgrind 替代方案。在 Dr Memory 中运行 Qt 应用程序会为每个 Qt 调用生成警告!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-20
  • 2010-09-16
  • 2013-03-08
  • 2020-05-03
  • 1970-01-01
  • 2010-12-20
相关资源
最近更新 更多