当我尝试在另一台计算机上执行我的qt程序时,我收到此错误并崩溃:
Failed to load platform plugin "windows". Available platforms are:
windows
我知道其他几个问题已经讨论过这个问题:
failed to load platform plugin "windows" Available platforms are: windows, minimal
Qt application: Failed to load platform plugin "windows". Available platforms are:
PyQt5 - Failed to load platform plugin "windows". Available platforms are: windows, minimal
但是我已经应用了建议的解决方案,但它仍然不适用于我。相关信息:
我使用Qt 5.1.0和MinGW 4.8 32bit进行开发
在我的开发电脑(Win7,64bit)上程序执行得很好
我在发布模式下编译了我的应用程序
目标电脑(Win7,32位)没有安装Qt
我的.pro:
的一部分QT + =核心gui opengl network xml testlib
TARGET = myApp
TEMPLATE = app
CONFIG + = qtestlib help
CONFIG - = app_bundle
我的部署文件夹的内容:
MYAPP.EXE
[所有dll,位于我的开发环境的.exe文件夹中]
[来自Qt / 5.1.0 / 5.1.0 / mingw48_32 / bin的所有dll]
[来自Qt / 5.1.0 / Tools / mingw48_32 / bin的所有dll](包括libEGL.dll,libEGLd.dll,libGLESv2.dll,libGLESv2d.dll)
[来自Qt / 5.1.0 / Tools / QtCreator / bin的所有dll]
平台/ qwindows.dll
答案 0 :(得分:0)
我遇到了与qwindows.dll相同的问题 - win7 64 ok,win7 32失败,无法找到qwindows.dll
首先我检查了我可以用-platformpluginpath运行它:
app.exe -platformpluginpath plugins/platforms
一切都好,所以问题只是错误的搜索内部应用程序。 我结束时只是添加了所有可能的路径:
#include <QApplication>
#include <QDir>
void registerPluginsDir(QDir& exeDir)
{
#ifdef Q_OS_MAC
QString pluginsRelPath = "/../../PlugIns";
#elif defined(Q_OS_WIN)
QString pluginsRelPath = "Plugins";
#elif defined (Q_OS_LINUX)
QString pluginsRelPath = "../lib/plugins";
#else
#error "Unsupported OS"
#endif
QString platformsRelPath = "platforms";
QString pluginsPath = exeDir.absoluteFilePath(pluginsRelPath);
QString platformsPath = QDir(pluginsPath).absoluteFilePath(platformsRelPath);
QStringList pathes = QCoreApplication::libraryPaths();
pathes << pluginsPath;
pathes << platformsPath;
pathes << platformsRelPath;
pathes << pluginsRelPath;
QCoreApplication::setLibraryPaths(pathes);
}
int main(int argc, char *argv[])
{
QString exePath = QString::fromUtf8(argv[0]);
QFileInfo exeInfo (exePath);
QDir exeDir (exeInfo.absolutePath());
//need to set correct plugins path before app instance created
registerPluginsDir(exeDir);
QApplication app(argc, argv);
// more code here
return app.exec();
}