Qt 5.0.1无法启动程序

时间:2013-03-11 14:51:43

标签: qt compiler-errors

我对Qt有一个奇怪的问题。最近我下载了Qt 5.0.1。现在我在Qt开始的每个项目都是“Build-> Start”,效果很好。但是,如果我从资源管理器开始发布它的版本没有任何影响。如果我从资源管理器启动调试版本,则会出现此错误

enter image description here

怎么了?

2 个答案:

答案 0 :(得分:1)

我想您忘记在应用程序旁边复制插件目录了。 Dependency Walker不会在列表中显示它们,因为它们是由Qt Core libs在运行时加载的。因此,最终可执行文件在编译时不知道这些插件的链接或位置。

答案 1 :(得分:1)

它精确地说,它需要什么 - “windows”插件。它应位于“平台”文件夹中,如qwindows.dll

您可以在Qt5 official windows deployment guide中阅读更多内容,而是在论坛上查看更实用的信息,i。即here

简而言之:要使您的应用程序(使用动态构建的Qt编译)在其他计算机上运行,​​您必须包含许多库。所有这些都应该从

复制
Qt_installation_folder/Qt_version/used_compiler/bin
&
Qt_installation_folder/Qt_version/used_compiler/plugins/

应从

复制QML插件
Qt_installation_folder/Qt_version/used_compiler/qml
&
Qt_installation_folder/Qt_version/used_compiler/imports

从与项目中使用的完全相同的编译器复制Qt库非常重要。

下面我给你一个例子(借鉴above second link)并附上解释:

ROOT FOLDER
│   YourApp.exe
│   D3DCompiler_43.dll        // } \
│   libEGL.dll                // }  --> If you use Qt built with ANGLE support
│   libGLESv2.dll             // } /
│   
│   icudt49.dll               // } \
│   icuin49.dll               // }  --> If you use Qt built with WebKit (Unicode support)
│   icuuc49.dll               // } /
│   
│   Qt5Core.dll               // --> Basic Qt module, always needed
│   Qt5Gui.dll                // --> If you use GUI module
│   
│   Qt5Network.dll            // } \
│   Qt5Qml.dll                // }  --> If you use QML
│   Qt5Quick.dll              // }  --> module
│   Qt5V8.dll                 // } /
│   
│   Qt5Multimedia.dll         // } --> If you use multimedia
│   Qt5MultimediaQuick_p.dll  // } --> from QtQuick
│
├───platforms
│       qwindows.dll          // Always needed for windows
│
├───QtMultimedia              // If you import QtMultimedia 5.x 
│       declarative_multimedia.dll
│       plugins.qmltypes
│       qmldir
│       Video.qml
│
├───QtQuick.2                 // If you import Qt.Quick 2.x
│       plugins.qmltypes
│       qmldir
│       qtquick2plugin.dll