【发布时间】: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