我在Qt Creator中使用Qt5。
如果我从Qt Creator本身启动它,我的程序运行正常,但如果我尝试从.exe
或debug
文件夹运行release
文件,我只会得到一个错误:
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();
}
这就是我的所有代码。
答案 0 :(得分:2)
当您启动使用Qt构建的应用程序时,您需要将代码中使用的Qt模块所需的所有dll(Qt5Widgets.dll,Qt5Core.dll等)放在与应用程序相同的文件夹中。
您不能为此目的使用addLibraryPath(),因为必须在执行此方法之前运行程序。如果在同一文件夹中找不到强制库,则无法运行。
您还需要一些其他库来运行Qt5程序,具体取决于您使用的模块。这里列出了Windows特定的Statically linked app with QT gives error: Failed to load platform plugin "windows"。
您可能还需要其他图书馆: - 如果要在GUI中加载图像文件,请插入/ qjpeg.dll等。 - sqldrivers / qsqlite.dll等,如果你使用数据库(你只需要你使用的驱动程序) 对于这些,您可以使用addLibraryPath()来设置特定位置,但是您应该避免这种情况并尽可能地将它们直接放在应用程序附近的右侧子文件夹中。
您可以在网上找到有关每个Qt5模块所需库的一些信息。您还可以查看自己喜欢的程序安装文件夹,以查看它们所需的库。
答案 1 :(得分:1)
我希望以下内容可以帮助您理解原因: http://doc.qt.io/qt-5/deployment.html