Qt5Widgets.dll 丢失? [复制]
Posted
技术标签:
【中文标题】Qt5Widgets.dll 丢失? [复制]【英文标题】:Qt5Widgets.dll is missing? [duplicate] 【发布时间】:2013-05-07 19:52:17 【问题描述】:我将 Qt5 与 Qt Creator 一起使用。
如果我从 Qt Creator 本身启动它,我的程序可以正常工作,但如果我尝试从 debug
或 release
文件夹运行 .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 构建的应用程序时,您需要将代码中使用的 Qt 模块所需的所有 dll(Qt5Widgets.dll、Qt5Core.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 模块所需的库的一些信息。您还可以查看您喜欢的程序安装文件夹,了解它们需要哪些库。
【讨论】:
【参考方案2】:我希望以下内容可以帮助您理解原因: http://doc.qt.io/qt-5/deployment.html
【讨论】:
感谢您的回答,这似乎是解决方案。但是,我应该为addLibraryPath()
使用哪个路径?我有两个不同的 Qt5Widgets.dll
文件,位于以下目录中:C:\Qt\Qt5.0.2\5.0.2\msvc2012_64\bin
和 C:\Qt\Qt5.0.2\Tools\QtCreator\bin
。
当您配置您的项目时,您会指出将使用哪一个 qt。在你的情况下,我认为它是 C:\Qt\Qt5.0.2\5.0.2\msvc2012_64\bin
链接导致了如此可爱的错误 404。
我有固定链接。搜索关键词是“应用部署”以上是关于Qt5Widgets.dll 丢失? [复制]的主要内容,如果未能解决你的问题,请参考以下文章