我的应用程序在调试模式下构建时有效。但它不会在发布中运行。
此应用程序无法启动,因为它无法找到或加载 Qt平台插件“windows”。
重新安装应用程序可能会解决此问题。
我复制了应用程序所需的dll。我还复制了qwindows.dll,qoffscreen.dll和libEGL.dll。
但是libEGL.dll位于C:\qt\5.3\msvc2013\bin
和`C:Qt \ ToolsQtCreator \ bin'中。我通过msvc-11.0(2012)编译了我的应用程序。
-
我将平台文件夹放到exe目录中,现在应用程序运行但在ntdll.dll中立即崩溃!771e56bc()
现在我的问题与此Why is ntdll.dll crashing my c++ executable?类似。
我可以使调试像发布一样工作但保存调试模式吗?
- 以下是发布模式的Application Verifier结果。它不会发生在调试中。
=======================================
VERIFIER STOP 00000006: pid 0xDF0: Corrupted heap pointer or using wrong heap.
00161000 : Heap handle used in the call.
093F8FF8 : Heap block involved in the operation.
00000004 : Size of the heap block.
06441000 : Heap where block was originally allocated.
=======================================
This verifier stop is not continuable. Process will be terminated
when you use the `go' debugger command.
=======================================
MyApp.exe has triggered a breakpoint.
AVRF: Noncontinuable verifier stop 00000006 encountered. Terminating process ...
The thread 0x1724 has exited with code -1073740767 (0xc0000421).
The program '[3568] MyApp.exe' has exited with code -1073740767 (0xc0000421).
-
这是调用堆栈的顶部
vrfcore.dll!6ae43466() Unknown
[Frames below may be incorrect and/or missing, no symbols loaded for vrfcore.dll]
[External Code]
qwindows.dll!0f0642cb() Unknown
qwindows.dll!0f065f8a() Unknown
qwindows.dll!0f0662bb() Unknown
Qt5Gui.dll!0f774cf3() Unknown
Qt5Gui.dll!0f774e75() Unknown
Qt5Gui.dll!0f7778d5() Unknown
答案 0 :(得分:2)
但libEGL.dll位于
C:\qt\5.3\msvc2013\bin
和`C:Qt \ ToolsQtCreator \ bin'
您不得从C:\Qt\Tools\QtCreator\
获取任何DLL - 这些是Qt Creator的私有DLL,并且它们与您的应用程序不兼容。
仅从C:\Qt\5.3\msvc2013\bin
和C:\Qt\5.3\msvc2013\plugins
获取DLL。这是必需的文件夹结构:
(来源:http://qt-project.org/wiki/Deploy_an_Application_on_Windows)
答案 1 :(得分:1)
这听起来像是缺少DLL或者应用程序期望它在不同的路径中。
a)使用发布版本可执行文件中的Dependency Walker来检查是否可以解析所有DLL依赖项。
b)确保您的平台插件文件位于正确的位置。我认为他们需要在一个名为"平台"的文件夹中。 (虽然不是很确定)。
c)有一个关于类似问题的post in the Qt论坛。也许这有助于你追踪它。