【问题标题】:Qt Release build giving MSVC++ Runtime Library ErrorQt Release 版本给出 MSVC++ 运行时库错误
【发布时间】:2012-10-11 18:02:10
【问题描述】:

在调试模式下构建时,我有一个完美运行的应用程序(带有大约 16 个 DLL 的 exe)。但是,一旦我切换到 Release,构建 exe 和所有 DLL,所有必需的 DLL 从 QtSDK bin 复制过来,我就会遇到运行时错误。

我应该如何解决正在发生的事情?这是一个常见问题吗?我没有任何入口点等,甚至从......开始只是一个通用的运行时错误。

我发现的唯一类似问题是here,但这是来自更旧版本的 Qt。 4.7.4 只有一个 bin 文件夹。

编辑 1 - 除了创建 MainWindow 对象和 MainWindow 构造函数之外的所有内容之外,我已经在 main.cpp 中注释了所有内容,因此它应该只是打开一个空窗口 - 仍然是运行时库问题。

注意 - 将其保持在发布模式并启动调试器可以正常启动应用程序。 调试 -> 启动和调试外部应用程序也会导致此运行时库错误。

【问题讨论】:

  • 啊,谢谢你的解释,我从来不知道。现在有什么建议可以解决这个问题吗? :)
  • 您使用的是 Microsoft Visual Studio/C++ 还是其他软件?
  • Qt c++,使用 Mingw 编译器。
  • 谢谢。如果是 MSVC,我会说使用调试器在进程运行时附加到进程。如果您可以使用 Qt c++ 做到这一点,那么您至少可以在显示对话框时看到调用堆栈。可能会帮助您缩小代码调用的方法范围。
  • 在 MSVC 中,您可以使用此技术调试不包含调试信息(为发布而编译)的 EXE,您只能看到反汇编窗口,甚至为编译以在单独文件中发布的 EXE 和 DLL 创建调试信息(称为 pdb 或程序数据库)并使用它来调试您的发布 EXE,甚至可以查看其源代码。但是,当您使用 Mingw 时,另一个选择是在入口点创建一个日志文件,并在程序启动后立即开始记录到该文件,并希望找到导致错误的函数

标签: c++ qt build mingw runtime-error


【解决方案1】:

同时添加 libEGL.dll。

查看此错误了解详情:https://bugreports.qt-project.org/browse/QTBUG-28766

【讨论】:

    【解决方案2】:

    我向大家道歉。 QtSingleApplication 库似乎无法正常工作。我已经实现了这一点,以强制我打开的任何文件都打开到一个实例中。我已经重新编译它,它仍然无法正常工作,但只是使用 QApplication 似乎已经解决了运行时库。我将不得不对 QtSingleApplication 进行更多研究,看看为什么它会很痛苦。

    无论如何感谢您的快速cmets :)

    【讨论】:

    • 嗨,DavidJ,你的项目怎么样。我收到类似于您的错误的错误。你有解决办法吗?
    猜你喜欢
    • 2020-06-27
    • 1970-01-01
    • 1970-01-01
    • 2013-03-16
    • 2018-11-25
    • 1970-01-01
    • 1970-01-01
    • 2021-09-27
    • 2012-07-05
    相关资源
    最近更新 更多