【问题标题】:vs2010 cannot run file in compiled mode, but executes properly in debug modevs2010无法在编译模式下运行文件,但在调试模式下可以正常执行
【发布时间】:2011-03-24 15:55:55
【问题描述】:

最近我在 Visual Studio 2010 中使用 Qt 编写程序。我已经正确配置了我的 Qt 设置,因为我之前成功运行了该程序。但是现在我不能在编译模式下运行程序(在IDE之外),但它在调试模式下可以正常运行。

我的操作系统是 Windows 7,我使用的是 Qt 4.7

附言。它并没有说缺少 DLL,只是默默地崩溃....

【问题讨论】:

  • 错误是什么?是说缺少 DLL 吗?
  • 它并没有说缺少 DLL,它只是默默地崩溃...大声笑
  • 您是否正在加载任何资源或以其他方式打开文件? Path 变量在 IDE 内部是不同的。

标签: visual-studio-2010 qt


【解决方案1】:

如果它在发布模式下执行但崩溃,则可能与 Qt 无关。

可能性 - 您在调试/发布模式下设置了不同的环境。您是从 Debug\Release 目录中的命令行还是从 MSVC 中的 ctrl-f5 运行它? 所以一个版本可能会找到错误的 dll 集,也许是更早的版本?

或者更可能的是,您的代码中存在一个仅在发布模式下显示的错误。最常见的是未初始化的变量,调试模式通常将所有变量设置为零,而在发布模式下它们可以包含任何随机值。

【讨论】:

    【解决方案2】:

    也许您的代码依赖于存储在应用程序文件夹中的一些文件,而这些文件在发布文件夹中丢失了?

    或者您的系统中安装了许多 Qt 版本,而 VS 中使用的版本与应用程序可见的版本不同?

    【讨论】:

      【解决方案3】:

      我最近遇到了类似的问题,我花了很长时间才解决它。调试版本工作,因为它比发布版本,没有被优化。发布版本太快了,在设置之前等待互斥锁。我通过显式启用优化编译调试版本发现了问题。如果你认为这可能是一个类似的时间问题,你可能想试试这个。

      编辑添加:另一种可能性是您违反了一些抗锯齿规则或其他什么,如果您的代码未优化,这不会造成任何伤害。再次尝试在调试版本中启用优化。 (此外,单步执行完全优化的代码可能是超现实的。)

      【讨论】:

        【解决方案4】:

        如果这是你第一次尝试在你的机器上以发布模式运行你在 VS 中构建的任何东西,这通常是没有安装 VS 运行时库的问题。安装 VS 不会将它自己的运行时库安装到系统中。虽然在 IDE 内部运行将适用于调试和发布版本,但在 IDE 外部运行将不起作用。这是一个巨大的 PITA,找到正确版本的 vcredist。它位于 Visual Studio 树中的某个位置(不记得在哪里)安装它并从那里继续。

        您可以在“添加/删除程序”设置对话框中查看是否安装了任何版本的 vcredist,但确定安装的版本是否完全正确总是一个问题

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-03-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-08-24
          相关资源
          最近更新 更多