C++ Qt5应用程序未运行
我使用Qt5(用VisualStudio'12编译)创建了一个应用程序。它在我的机器上工作 但是,当我试图在另一台机器上运行它时,它不起作用。我通过cmd收集的输出生成了一个空文件 目录结构如下:C++ Qt5应用程序未运行,c++,qt,dll,C++,Qt,Dll,我使用Qt5(用VisualStudio'12编译)创建了一个应用程序。它在我的机器上工作 但是,当我试图在另一台机器上运行它时,它不起作用。我通过cmd收集的输出生成了一个空文件 目录结构如下: myapp.exe icudt52.dll icuin52.dll icuuc52.dll libEGL.dll libGLESv2.dll msvcp120.dll msvcr120.dll Qt5Core.dll Qt5Gui.dll 平台/qminimal.dll 平台/qwindows.dl
- myapp.exe
- icudt52.dll
- icuin52.dll
- icuuc52.dll
- libEGL.dll
- libGLESv2.dll
- msvcp120.dll
- msvcr120.dll
- Qt5Core.dll
- Qt5Gui.dll
- 平台/qminimal.dll
- 平台/qwindows.dll
有什么想法吗?当您在Qt Creator外双击exe时,Windows会报告一些启动错误。看起来您已经包含了大部分或所有这些内容 由于exe搜索的是
librarypath
,因此开发机器在启动和运行其qt插件时通常不会出现问题
将完成这项工作,并向您展示您需要知道的内容,但输出非常复杂,可能难以解读
我发现,要了解我在Windows上运行时使用的Qt插件DLL,最简单的方法是执行以下操作:
C:/Qt/5.3/msvc2010_opengl/
plugins
文件夹的副本(copyofplugins
文件夹与plugins
路径相同,因此在本例中它的父文件夹是msvc2010\u opengl
)plugins
文件夹可访问性
、平台
和图像格式
等等,具体取决于您在.pro
文件中包含的内容希望对您有所帮助。在手动复制dll文件之前,您必须先部署应用程序。 要在Windows上部署Qt应用程序,可以使用windeployqt,可在以下位置找到:
C:\Qt\Qt5.x.x\5.x.x\MSVCx\u x\bin\windeployqt
试着运行它,查看部署中缺少哪些库。您需要遵循Qt for Windows部署指南:谢谢您的精彩回答!它起作用了。显然,我的问题是我使用了错误的qwindows.dll。有一天,我会编写这个脚本,或者在Qt中制作一个工具来完成这些步骤,并制作一个Qt Creator插件或其他东西,以便更容易在Windows上部署。几年前第一次弄明白这一点是相当痛苦的。祝你好运
C:\Qt\Qt5.x.x\5.x.x\MSVCx_x\bin\windeployqt <APP_PATH>/myapp.exe