2013-05-07 215 views
6

我正在Qt Creator中使用Qt5。Qt5Widgets.dll不见了?

我的程序工作得很好,如果我启动它从Qt Creator的本身,但如果我尝试从debugrelease文件夹.exe文件,我只会得到一个错误:

The program can't start because Qt5Widgets.dll is missing from your computer. 
Try reinstalling the program to fix this problem. 

我新的Qt,并不知道是什么原因导致这一点,没有找到任何体面的结果从谷歌。 我已经尝试重新安装Qt5(包括创建者),但它没有帮助。


.proj文件看起来像这样:

TEMPLATE = app 
TARGET = test 

QT += \ 
    core \ 
    gui \ 
    widgets \ 

SOURCES += \ 
    main.cpp 

而且我main.cpp看起来是这样的:

#include <QApplication> 
#include <QWidget> 

int main(int argc, char **argv) 
{ 
    QApplication app(argc, argv); 
    QWidget window(); 
    window.show(); 
    return app.exec(); 
} 

而这一切,我的代码。

回答

1

当您启动使用Qt构建的应用程序,你需要有在你的代码(Qt5Widgets.dll,Qt5Core使用Qt的模块所需的所有DLL .dll等)与您的应用程序相同的文件夹中。

您不能为此使用addLibraryPath(),因为您的程序必须在执行此方法之前运行。如果它没有在同一个文件夹中找到必需的库,它将无法运行。

您还需要一些其他库来运行Qt5程序,具体取决于您使用的模块。这里列出了Windows的具体内容Statically linked app with QT gives error: Failed to load platform plugin "windows"

您可能还需要其他库: - plugins/qjpeg.dll等,如果您要在GUI中加载图像文件。 - sqldrivers/qsqlite.dll等,如果你使用数据库(你只需要你使用的驱动程序) 对于这些,你可以使用addLibraryPath()来设置特定的位置,但你应该避免这种情况,并尽可能地尝试把他们直接在您的应用程序附近的正确的子文件夹中。

您可以在网上找到关于每个Qt5模块所需库的一些信息。您还可以查看您最喜爱的程序安装文件夹,以查看它们需要哪些库。

1

我希望以下将帮助你理解为什么: http://doc.qt.io/qt-5/deployment.html

+0

感谢您的回答,这似乎是解决方案。但是,我应该为'addLibraryPath()'使用哪条路径?我有两个不同的'Qt5Widgets.dll'文件,位于以下目录中:'C:\ Qt \ Qt5.0.2 \ 5.0.2 \ msvc2012_64 \ bin'和'C:\ Qt \ Qt5.0.2 \ Tools \ QtCreator \ bin'。 – 2013-05-07 20:54:23

+0

当你配置你的项目时,你指出哪一个qt将被使用。在你的情况下,我认为,它是C:\ Qt \ Qt5.0.2 \ 5.0.2 \ msvc2012_64 \ bin – AnatolyS 2013-05-08 05:36:34

+0

链接导致了如此可爱的错误404. – BaldDude 2015-10-09 16:37:25