Не удалось загрузить плагин платформы "windows", даже с платформами /qwindows.dll и libEGL.dll
Когда я пытаюсь выполнить мою программу qt на другом компьютере, я получаю эту ошибку и вылет:
Failed to load platform plugin "windows". Available platforms are:
windows
Я знаю, что эта проблема обсуждалась в нескольких других вопросах:
Не удалось загрузить плагин платформы "Windows" Доступные платформы: Windows, минимальный
Приложение Qt: Не удалось загрузить плагин платформы "windows". Доступные платформы:
PyQt5 - Не удалось загрузить плагин платформы "windows". Доступные платформы: окна, минимальные
Но я применил предложенные решения, и они все еще не работают для меня. Релевантная информация:
Я использую Qt 5.1.0 с MinGW 4.8 32bit для разработки
на моем компьютере разработчика (Win7, 64bit) программа работает просто отлично
Я скомпилировал свое приложение в режиме релиза
на целевом ПК (Win7, 32bit) не установлен Qt
часть моего.pro:
QT + = основной графический интерфейс opengl для сети xml testlib
TARGET = myApp
ШАБЛОН = приложение
CONFIG + = qtestlib help
CONFIG - = app_bundle
содержимое моей папки развертывания:
MYAPP.EXE
[все библиотеки, которые находятся в папке.exe моей среды разработки]
[все библиотеки из Qt / 5.1.0 / 5.1.0 / mingw48_32 / bin]
[все библиотеки из Qt/5.1.0/Tools/mingw48_32/bin] (включая libEGL.dll, libEGLd.dll, libGLESv2.dll, libGLESv2d.dll)
[все библиотеки из Qt/5.1.0/Tools/QtCreator/bin]
платформы /qwindows.dll
1 ответ
У меня была такая же проблема с qwindows.dll - win7 64 ок, 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();
}