- Приложение не удалось запустить, так как не удалось найти или загрузить плагин QT platform » windows»
- 11 ответов:
- This application failed to start because it could not find or load the Qt platform plugin «windows»
- Application failed to start because it could not find or load the QT platform plugin “windows”
- 13 Answers 13
Приложение не удалось запустить, так как не удалось найти или загрузить плагин QT platform » windows»
Я просмотрел все вопросы, которые, по-видимому, связаны с переполнением стека, и ни одно из решений, кажется, не помогает мне.
Я создаю приложение Qt с этой настройкой:
- Windows 7 Professional x64
- Visual Studio 2012
- Qt 5.2.0 построен с помощью configure -developer-build -debug-and-release -opensource -nomake examples -nomake tests -platform win32-msvc2012 -no-opengl
- проект использует QtSingleApplication (qt-solutions)
- приложение является 32-битным приложением
- qmake запускается со следующими параметрами: — makefile-spec win32-msvc2012
- .pri использует QMAKE_CXX += /D_USING_V110_SDK71_
Я могу построить и запустить свою программу нормально на моей машине разработки (отмечено выше); я также могу установить и запустить пакет из каталога Program Files на машине разработки.
Когда я устанавливаю и запускаю на машине Windows Vista (несколько машин)
- VC++ redist 2012 11.0.61030.0 установлен
- VC++ redist 2010 10.0.40219 установлен
- плюс 2005, 2008 версии redist
(также терпит неудачу на a чистая установка Windows 7)
Application failed to start because it could not find or load the QT platform plugin «windows»
Поэтому я последовал инструкциям и добавил a .платформы / каталог, и добавил qwindows.dll (также добавлен qminimal.dll и qoffscreen.dll); я также добавил libEGL.dll, libGLESv2.dll (хотя я не думаю, что они мне понадобятся)
Однажды я добавил qoffscreen.dll теперь я получаю дополнительное сообщение: Available platform plugins are: offscreen
Если я пробегаю через Dependency Walker, я получаю эту ошибку в списке:
А затем еще ниже получаем the:
Есть идеи, как исправить эту проблему dll?
11 ответов:
Ошибка вызвана тем, что программа не может найти qwindows.dll
qwindows.dll должен находиться в папке с именем platforms , так что путь от вашего исполняемого файла к dll будет platforms/qwindows.dll
Хотя в моем случае этого было недостаточно. Мне также пришлось добавить следующую строку в начале моего main () Тогда все сработало.
Я получил эту проблему и как я ее решил:
Используемая зависимость walker (http://www.dependencywalker.com/), чтобы увидеть точный путь необходимых библиотек DLL. Попробуйте, потому что и QtCreator, и Qt framework имеют одинаковые библиотеки DLL, и вы должны точно определить, какие из них используются. Я скопировал все необходимые библиотеки DLL в ту же папку, что и приложение.
Я скопировал папку platforms из Qt framework / plugins и скопировал ее в ту же папку, что и приложение. Теперь приложение вступило в силу также плагин / платформа / папка со всеми своими DLL
И самым важным шагом в моем случае является создание файла с именем qt.conf в той же папке, что и приложение . Этот файл должен содержать путь к плагинам. Мой qt.файл conf содержит:
[пути]
Библиотеки=../lib / qtcreator
Plugins=Плагины
Импорт=импорт
Qml2Imports=qml
Приложение может работать на хост-системе, так как путь Qt bin находится в переменной system PATH .
Существует стандартный инструмент Qt для развертывания приложений Qt на Windows windeployqt чтобы иметь возможность запускать приложение на целевых машинах, на которых не установлен Qt.
Этот инструмент заботится о зависимостях Qt DLL, делает копию platforms\qwindows.dll , а также делает копию библиотек, которые вы не можете обнаружить с помощью Dependency Walker , так как Плагины изображений и некоторые другие библиотеки DLL загружаются во время выполнения.
Вам даже не нужно иметь папку Qt bin в вашей среде PATH . Самое простое развертывание:
- скопировать построенный exe двоичный файл в новую папку
- откройте консоль cmd в этой папке
- вызовите windeployqt используя полный путь (если его нет в системе PATH ) и предоставьте свой исполняемый файл, например:
В результате у вас есть в этой папке все необходимые библиотеки DLL Qt, чтобы запустить приложение.
Инструмент windeployqt имеет различные опции. Он также может позаботиться о развертывании связанных файлов qml .
Конечно, вы можете иметь также проблемы с MSVC redistributables, но они должны быть развернуты отдельно и установлены один раз в системе.
Только некоторые сторонние библиотеки должны быть скопированы вручную, если они используются, например OpenSSL.
У меня была та же проблема «приложение не удалось запустить, потому что он не мог найти или загрузить Qt platform plugin» windows» Я исправил это, скопировав файлы ниже в приложение.папка exe (my app executable),
Qt5Core.dll, Qt5Gui.dll, Qt5Widgets.dll и каталог «платформ» с qminimal.проблемы, qoffscreen.dll, qwindows.файл DLL.
Я надеюсь, что это кому-то поможет
Примечание эта проблема можеттакже быть вызвана, если путь поиска для qwindows.dll , который закодирован в вашем приложении, включает путь, где вы установили Qt. Рассмотрим следующий сценарий:
- я устанавливаю Qt на c:\Qt\.
- я разрабатываю приложение и правильно развертываю его в другом месте.
- он работает на любом компьютере правильно, потому что он включает qwindows.dll в подкаталог.
- я обновляю свой локальный Qt до новой версии.
- я пытаюсь запустить свое приложение снова.
Результатом является эта ошибка, потому что qwindows.dll в c:\Qt\. находится перед в его локальном каталоге и он несовместим с ним. Очень раздражать.
Решение состоит в том, чтобы поместить файл qt.conf в тот же каталог, что и ваш exe-файл. Я не знаю, как этого избежать. Если вы использовали инструмент windeployqt.exe для развертывания вашего приложения, поэтому у вас есть подкаталог с именем platforms , то этого достаточно:
Для людей, у которых эта проблема в будущем — у меня есть грязный маленький хак, работавший на меня. Попробуйте на свой страх и риск.
Выполните все шаги в начальном развертывании (быстрый и грязный) [http://wiki.qt.io/Deploy_an_Application_on_Windows]
- Закройте Qt Creator.
- скопируйте следующее в C:\Deployment\ версия выпуска MyApp.ехе все свои .dll файлы из C:\Qt\5.2.1\mingw48_32\bin\ все папки из C:\Qt\5.2.1\mingw48_32\plugins\
- (Если вы использовали QML) все папки из C:\Qt\5.2.1\mingw48_32\qml\ переименовать C:\Qt\ to C:\QtHidden\ (это превращает ваш компьютер в чистую среду, точно так же, как тот, на котором не установлен Qt).
- Запуск C:\Deployment\MyApp.exe.
Теперь для взлома —
- дублируйте папку для безопасности
- Если ваш файл был в/cat / Deployment, перейдите в /cat
- Теперь удалите папку развертывания в то время как .exe все еще работает. Он скажет вам, что не может этого сделать. удалить определенные файлы, так сказать пропустить(или пропустить все)
- то, что у вас осталось, — это список всех .dll файлы, которые ваши .exe на самом деле использовал и не мог удалить: список всех файлов и только те файлы, которые нужно сохранить.
Вы можете закрыть .теперь exe-файл. Чтобы проверить, нормально ли он развертывается, зайдите в папку, где вы его установили, и скажите: C:/Qt и переименовать его в C:/NotQt (в основном сделать Qt невидимым для системы). Если он работает сейчас, то будет развернут на других системах чаще всего-нет.
Ну, я решил свою проблему, хотя и не уверен, в чем разница:
Я скопировал каждую dll из моего каталога qt в оба ./ и ./ платформы каталога моих приложений.
Приложение прошло мимо ошибки, но затем разбилось.
Версия.dll вызывала сбой (отмечено в dependency walker), поэтому я удалил его из обоих мест.
Приложение запустилось, поэтому я систематически удалял все ненужные dll.
Это вернуло меня в то же состояние, в котором я был. первоначально.
Затем я удалил свое приложение и повторно установил (только с помощью ./ платформы / qwindows.dll файл остается), приложение работает правильно.
Таким образом, все, что я могу предположить, это то, что у меня была неправильная версия qwindows.DLL в каталог платформы.
У меня та же проблема.: 1. он может работать в VS2010; 2. он может работать в папке с файлами как: апп.exe \платформы\qwindows.файл DLL .
- Но он не смог загрузить qwindows на чистую машину с той же ОС, что и развивающаяся.
Решается простым перемещением папки платформы в плагины: апп.exe Плагины\платформы\qwindows.dll
Плюс: qwindows.DLL может быть переименован в любое вам нравится, как она запрашивается с помощью плагина interafce: qt_plugin_query_metadata ()
В нем отсутствуют qwindows.dll, которая обычно должна быть в платформах, если вы не добавляете:
Если вы этого не сделаете, кстати, и поставьте свои qwindows.dll где-то еще, Qt будет искать ваш путь для DLL, что может занять много времени (10s — несколько минут)!
Для меня, я должен был установить QT_QPA_PLATFORM_PLUGIN_PATH в каталог платформ, и тогда это сработало.
Как бы то ни было, это решение также было упомянуто на GitHub .
Попробовал все вышеперечисленное-оказалось, что для меня это было просто потому, что у меня не было основной библиотеки DLL Qt в папке apps
This application failed to start because it could not find or load the Qt platform plugin «windows»
Ошибка not find or load the Qt platform plugin «minimal» в Ubuntu IDE (qtcreator)
Здравствуйте. В основных сообщениях при компиляции это: Не удалось загрузить типы из модуля.
Ошибка This application failed to start because no Qt platform plugin could be initialized
Здравствуйте. При запуске QT приложения возникает такая ошибка: This application failed to start.
Could not find the Qt platform plugin «windows» in «»
у меня ошибка : Could not find the Qt platform plugin «windows» in «» This application failed to.
«Failed to start application (Code:4)». Я не могу войти в аську
У меня ISQ 6.5. При входе выдает ошибку. Пишет «Failed to start application (Code:4)». Я могу войти.
А можно поконкретней? В общем, все как обычно
Добавлено через 1 час 11 минут
Сообщение об ошибке выглядит вот так
Если создать переменную QT_QPA_PLATFORM_PLUGIN_PATH и задать путь к папке, где лежит plugins или platforms или qwindows, то пустые кавычки покажут этот путь.
Добавлено через 6 минут
Такой вариант тоже ничего не дает
Насколько я знаю, достаточно положить нужные dll’ки (минимум qwindows.dll) в папку platforms рядом с exe-файлом. И у меня это всегда работает.
PS
А статический вариант вроде платный, как бы. Был, во всяком случае.
Тематические курсы и обучение профессиям онлайн Профессия Разработчик на C++ (Skillbox) Архитектор ПО (Skillbox) Профессия Тестировщик (Skillbox) |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.
Ошибка при запуске GTA4 «secuLauncher: failed to start application»
Windows 7. GTA 4. Ребят,подскажите пожалуйста игруля установилась,кликаю на ярлык выдаёт ошибку.
Ошибка при установке Windows на ноутбук HP Pavilion Sleekbook 15: «Windows failed to start»
При установки WIN-10 с USB-флеш загрузчик потребовал отформатировать диск, а после этого сообщил.
Не запускается система на нетбуке «windows failed to start»
windows failed to start.A recent hardware or software change might be the cause.To fix problem: .
Что является причиной появления сообщения «Windows failed to start»?
Играл в игру на ноутбуке , после чего он завис. После рестарта вылазит при загрузке это. Носителя.
Application failed to start because it could not find or load the QT platform plugin “windows”
I have looked through all of the questions that appear to be related on stack overflow, and none of the solutions seem to help me.
I am building a Qt application with this setup:
- Windows 7 Professional x64
- Visual Studio 2012
- Qt 5.2.0 built with configure -developer-build -debug-and-release -opensource -nomake examples -nomake tests -platform win32-msvc2012 -no-opengl
- Project uses QtSingleApplication (qt-solutions)
- Application is a 32 bit application
- qmake run with the following: -makefile -spec win32-msvc2012
- .pri uses QMAKE_CXX += /D_USING_V110_SDK71_
I can build and run my program fine on my development machine (noted above); I can also install and run the package from Program Files directory on dev machine.
When I install and run on a Windows Vista machine (multiple machines)
- VC++ redist 2012 11.0.61030.0 installed
- VC++ redist 2010 10.0.40219 installed
- plus 2005, 2008 versions of redist
(also fails on a clean install of Windows 7)
Application failed to start because it could not find or load the QT platform plugin «windows»
So I followed the instructions and added a .platforms/ directory, and added qwindows.dll (also added qminimal.dll and qoffscreen.dll); I also added libEGL.dll, libGLESv2.dll (even though I shouldn’t need them I don’t think)
Once I added qoffscreen.dll I now get the additional message: Available platform plugins are: offscreen
If I run through Dependency Walker I get this error listed:
and then further down get the:
Any ideas how to fix this dll issue?
13 Answers 13
The error is caused because the program can’t find qwindows.dll
qwindows.dll has to be in a folder named platforms so that the path from your executable to the dll is platforms/qwindows.dll
Whereas this wasn’t enough in my case. I had also to add following line at the beginning of my main()
Then everything worked.
The application is able to run on the host system, since the Qt bin path is in the system PATH variable.
There is a standard Qt tool for deployment of Qt applications on Windows windeployqt to be able to run the application on target machines that do not have Qt installed.
That tool takes care about Qt DLL dependencies, makes a copy of platforms\qwindows.dll and also it makes a copy of libraries that you cannot detect with the Dependency Walker, since image plugins and some other DLLs are loaded at runtime.
You do not even need to have your Qt bin folder in your environment PATH . The simplest deployment:
- copy built exe binary to a new folder
- open cmd console in that folder
- call windeployqt using the full path (if it is not in the system PATH ) and provide your executable, for example:
As a result you have in that folder all needed Qt DLLs to run the application.
The tool windeployqt has various options. It can also take care about deployment of qml related files.
Of course you can have also issues with MSVC redistributables, but those should be deployed separately and installed once per system.
Only some 3rd party libraries should be copied manually if they are used, for example OpenSSL.
I got this issue and how I solved it:
Used dependency walker(http://www.dependencywalker.com/) to see the exact path of the dlls needed. Try it because both QtCreator and QT framework both have the same dlls and you must pinpoint the exact ones used. I copied all dlls needed in the same folder as the app.
I have copied the folder platforms from QT framework /plugins and copied it in the same folder as the app. Now the app comtained also plugin/platform/ folder with all its dlls
And the most important step in my case is to create a file named qt.conf in the same folder as the app . This file should contain the path to the plugins. My qt.conf file contains:
[Paths]
Libraries=../lib/qtcreator
Plugins=plugins
Imports=imports
Qml2Imports=qml
I had the same issue «Application failed to start because it could not find or load the QT platform plugin «windows» I fixed this by copying below files to the app.exe (my app executable) folder,
Qt5Core.dll, Qt5Gui.dll, Qt5Widgets.dll and a «platforms» directory with qminimal.dll, qoffscreen.dll, qwindows.dll.
I hope this will help someone
Note this issue can also be caused if the search path for qwindows.dll that is encoded in your app includes the path where you installed Qt. Consider the following scenario:
- I install Qt to c:\Qt\.
- I develop an app and deploy it correctly somewhere else.
- It runs on any computer properly because it includes qwindows.dll in a subdirectory.
- I upgrade my local Qt to a new version.
- I try to run my app again.
The result is this error, because the qwindows.dll in c:\Qt\. is found before the one in its local directory and it is incompatible with it. Very annoying.
A solution is to place a file qt.conf in the same directory as your exe file. I don’t know how to avoid this. If you used the tool windeployqt.exe to deploy your app, so you have a subdirectory called platforms , then this is sufficient:
For me, I needed to set QT_QPA_PLATFORM_PLUGIN_PATH to the platforms directory and then it worked.
For what it’s worth, this solution was also mentioned on GitHub.
For the people who have this problem in the future — I have a dirty little hack, worked for me. Try at your own risk.
Follow all the steps in Initial deployment (Quick and dirty) [http://wiki.qt.io/Deploy_an_Application_on_Windows]
- Close Qt Creator.
- Copy the following into C:\Deployment\ The release version of MyApp.exe All the .dll files from C:\Qt\5.2.1\mingw48_32\bin\ All the folders from C:\Qt\5.2.1\mingw48_32\plugins\
- (If you used QML) All the folders from C:\Qt\5.2.1\mingw48_32\qml\ Rename C:\Qt\ to C:\QtHidden\ (This turns your PC into a clean environment, just like one that doesn’t have Qt installed).
- Launch C:\Deployment\MyApp.exe.
Now for the hack —
- Duplicate your folder for safety
- If your file was in /cat/Deployment, go to /cat
- Now, delete the Deployment folder while the .exe is still running.
- It will tell you that it cannot delete certain files, so say Skip(or skip all)
- What you’re left with is the list of all the .dll files that your .exe was actually using and could not delete: the list of all the files and only the files that you need to keep.
You can close the .exe file now. To check whether it is deploying okay, go into the folder where you installed it, say C:/Qt and rename it to C:/NotQt (basically make Qt invisible to the system). If it works now, it will deploy on other systems more often than not.