Qt5Widgets.dll 丢失? [复制]

Posted

技术标签:

【中文标题】Qt5Widgets.dll 丢失? [复制]【英文标题】:Qt5Widgets.dll is missing? [duplicate] 【发布时间】:2013-05-07 19:52:17 【问题描述】:

我将 Qt5 与 Qt Creator 一起使用。

如果我从 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 构建的应用程序时,您需要将代码中使用的 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\binC:\Qt\Qt5.0.2\Tools\QtCreator\bin 当您配置您的项目时,您会指出将使用哪一个 qt。在你的情况下,我认为它是 C:\Qt\Qt5.0.2\5.0.2\msvc2012_64\bin 链接导致了如此可爱的错误 404。 我有固定链接。搜索关键词是“应用部署”

以上是关于Qt5Widgets.dll 丢失? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在新机器部署Qt+mysql程序

Qt 应用程序发布 exe 未运行

PySide2和pyinstaller gui应用程序将无法在某些Windows计算机上运行

Redis主从复制丢失数据的情况分析

redis哨兵主备切换的数据丢失问题:异步复制集群脑裂

为啥我正在加载的图像丢失? [复制]