为了账号安全,请及时绑定邮箱和手机立即绑定

应用程序无法启动,因为它无法找到或加载QT平台插件“windows”

应用程序无法启动,因为它无法找到或加载QT平台插件“windows”

C++
湖上湖 2019-08-05 15:39:02
应用程序无法启动,因为它无法找到或加载QT平台插件“windows”我查看了所有与堆栈溢出相关的问题,但没有一个解决方案对我有帮助。我正在使用此设置构建Qt应用程序:Windows 7专业版x64Visual Studio 2012Qt 5.2.0内置 configure -developer-build -debug-and-release -opensource -nomake examples -nomake tests -platform win32-msvc2012 -no-opengl项目使用QtSingleApplication(qt-solutions)应用程序是一个32位应用程序qmake使用以下命令运行:-makefile -spec win32-msvc2012.pri使用 QMAKE_CXX += /D_USING_V110_SDK71_我可以在我的开发机器上构建和运行我的程序(如上所述); 我也可以在dev机器上的Program Files目录下安装和运行包。当我在Windows Vista计算机上安装并运行时(多台计算机)安装VC ++ redist 2012 11.0.61030.0安装VC ++ redist 2010 10.0.40219加上2005年,2008版的redist(在Windows 7的全新安装上也失败了)我明白了:Application failed to start because it could not find or load the QT platform plugin "windows"所以我按照说明添加了.platforms /目录,并添加了qwindows.dll(还添加了qminimal.dll和qoffscreen.dll); 我还添加了libEGL.dll,libGLESv2.dll(即使我不应该需要它们,我不认为)一旦我添加了qoffscreen.dll,我现在得到了额外的消息: Available platform plugins are: offscreen如果我通过Dependency Walker运行,我会列出以下错误:GetProcAddress(0x76CA0000 [KERNEL32.DLL], "GetCurrentPackageId") called from "MSVCR110.DLL" at address 0x6AC6FDFA and returned NULL. Error: The specified procedure could not be found (127).然后进一步得到:GetProcAddress(0x745A0000 [UXTHEME.DLL], "BufferedPaintUnInit") called from "COMCTL32.DLL" at address 0x745FFBF8 and returned 0x745AE18C.This application failed to start because it could not find or load the Qt platform plugin "windows".Available platform plugins are: offscreen.Reinstalling the application may fix this problem.任何想法如何解决这个DLL问题?
查看完整描述

3 回答

?
墨色风雨

TA贡献1853条经验 获得超6个赞

应用程序能够在主机系统上运行,因为Qt bin路径在系统PATH变量中。

有一个标准的Qt工具,用于在Windows上部署Qt应用程序,windeployqt以便能够在未安装Qt的目标计算机上运行应用程序。

该工具负责Qt DLL依赖项,制作副本,platforms\qwindows.dll并且它还使用Dependency Walker无法检测到的库副本,因为图像插件和其他一些DLL在运行时加载。

您甚至不需要bin在您的环境中拥有Qt 文件夹PATH。最简单的部署:

  • 将内置exe二进制文件复制到新文件夹

  • cmd在该文件夹中打开控制台

  • windeployqt使用完整路径调用(如果它不在系统中PATH)并提供可执行文件,例如:

    c:\Qt\Qt5.2.1\5.2.1\msvc2010_opengl\bin\windeployqt.exe application.exe

因此,您在该文件夹中拥有运行应用程序所需的所有Qt DLL。

该工具windeployqt有多种选择。它还可以处理qml相关文件的部署。

当然,您也可能遇到MSVC可再发行组件的问题,但这些应该单独部署并在每个系统上安装一次。

如果使用它们,则只应手动复制某些第三方库,例如OpenSSL。


查看完整回答
反对 回复 2019-08-05
  • 3 回答
  • 0 关注
  • 15338 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信