[SOLVED]Failed to load platform plugin "windows"
-
hello all
I am using MSVC 2012 and I am migrating from Qt4.8 to Qt.5.1 (or .2 I see it is available now)I want to design a program which works on any PC (either XP, W7 and W8): checking this is cumbersome since my design PC has installe Qt and MSVC redistributable (as part of MSVC2012). In fact the program works perfectly on my PC.
I am distributing the program with the InstallShield package which come for free with MSVC2012
I understand I need to support the MSVC run time support (done)
If I run my application on most of PC I get the infamous error:
"This application failed to start because it could not find or load the Qt platform plugin "windows" "
I tried to manually add in the application path of the target pc (not my pc) the directories
plugins/platforms/ and put qwindows.dll inside but did not help
I am using MSVC project file and InstallShield (as I said). I can see many discussion on this point but I cannot find a conclusive solution for me.
What perfectly worked with Qt4 now is not with Qt 5 ...
thanks for your help
-
-
I solved adding platforms/qwindows.dll and the libs mentioned above
-
I am having the same problem.
First the error showed no available platforms.
Adding qwindows.dll to platforms made it show up as "available platforms : windows."But that is still the next step in getting this error.
I added libegl.dll.
I don't have libGLEv2.dllThats after installing at the destination.
EDIT :
At home I have libglev2.dll but no libegl.dll.(installed qt and mingw at both locations and its already different in available dll's.)
Even the quick and dirty trick isnt working.
So I wrote an app that only works on my computer. Great.mingw.
-
I am getting an error exactly as mentioned without any dll files in the error message when executing the release version of the built application, and an error related to QCore.dll as mentioned above when executing the debug version of the built application.
-
[quote author="abraker95" date="1402546761"]I am getting an error exactly as mentioned without any dll files in the error message when executing the release version of the built application, and an error related to QCore.dll as mentioned above when executing the debug version of the built application.[/quote]Hi, try http://qt-project.org/wiki/Deploy_an_Application_on_Windows
-
[quote author="abraker95" date="1402547512"]No luck. I checked to make sure I have the needed file structure, and made sure to include libEGL.dll.[/quote]
Did you include all the DLLs and all the plugin folders?
Does your program run from Qt Creator?
If you answer "yes" to both questions, please post a screenshot of your deployment folder and post the exact error message. To post a screenshot, upload it to an image host (e.g. imgur, flickr) and link to it here.
-
I copied all the DLL's from the mingw48_32 and msvc2012_opengl folders and all folders within the plugins folder and the application still shows the same error. And no it doesn't work in Qt.
!http://i59.tinypic.com/2wrj42s.jpg(1)!
!http://i59.tinypic.com/30ma2on.jpg(2)!
!http://i61.tinypic.com/2vte6ok.jpg(3)!
!http://i59.tinypic.com/fmmes5.jpg(4)!
!http://i57.tinypic.com/r6wr9i.jpg(Qt)! -
Hi your Qt version of mingw48_32 is 5.2.1 and your Qt version of msvc2012_opengl is 5.3.
Copying files from these releases together in one folder is alright, problem arises for the subfolders, in this case the platforms subfolder.
I'm guessing the files in there comes from the 5.2.1 version of Qt, and when qwindows.dll requests a Qt5xxx.dll it will fail because all the Qt5xxx.dlls are from the 5.3 version of Qt. Hence the "plugin" error.
EDIT: what I mean, the main problem is mixup of mingw48_32 and msvc2012 compiler technology, i.e. for a single .exe, it cannot both use .dlls from ming48_32 compiler and msvc2012_compiler.
-
Hmmm, I also have msvc2012_opengl installed and it has a qwindows.dll for sure.
Also, never copy anything from QtCreator's bin folder, because QtCreator for Qt version 5.3 is built with msvc2010 and Qt version 5.2.1. Best is to think about QtCreator's bin folder as private.
-
libEGL.dll and libGLESv2.dll are not needed for the msvc2012_opengl compiler.
If you want, you can read more about this in my "blog post":http://www.tripleboot.org/?p=138 scroll down to "msvc2012_opengl".
-
In your blog you write,
"This deployment is almost the same as the non-OpenGL versions above, but actually easier since there is no libEGL.dll and libGLESv2.dll dependencies."Yet I get this when using msvc2012_opengl with no libGLESv2.dll in the directory of the file:
!http://i62.tinypic.com/10424w0.jpg(compile)! -
Update:
I reinstalled Qt and corrected all the kit's compilers and Qt's. Using Microsoft Visual C++ Compiler 12.0 (x86) and Qt 5.3.0 (msvc2013) I was able to solve the error. However now the program crashes when run. While it runs within Qt, it still shows a crash error in the application output:
"The instruction at 0x5b175f0d referenced memory at 0x00000000. The memory could not be read.
Click on OK to terminate the program"Edit: Qt shows this:
"QWindowsWindow::setGeometry: Unable to set geometry 75x23+480+190 on QWidgetWindow/'QPushButtonClassWindow'. Resulting geometry: 124x23+480+190 (frame: 8, 31, 8, 8, custom margin: 0, 0, 0, 0, minimum size: 0x0, maximum size: 16777215x16777215).
Problem creating accessible interface for: QPushButton(0x88fd18)
Make sure to deploy Qt with accessibility plugins."EDIT 2:
After adding the "Accessible" folder from the plugins directory the program works fine in Qt. It still crashes when not running from Qt, however.EDIT 3:
I rebuilt the debug version of the application and it still shows the platform error. I have no idea why the debug and release versions are showing different results. -
[quote author="abraker95" date="1402618312"]And no it doesn’t work in Qt.[/quote]If it doesn't work in Qt Creator, then it won't work when you try to deploy it. You need to get it to work in Qt Creator first.
By the way, "Qt" is the name of the library. "Qt Creator" is the name of the IDE that uses the Qt library.
[quote author="abraker95" date="1402618312"]The only DLL’s I copied from the mingw48_32 folder is the platform since it’s the only qWindows.dll I found. The rest of the DLL’s come from the msvc2012_opengl folder...[/quote]You must not mix DLLs. Only take from the folder that matches your compiler. DLLs that don't match your compiler will break your program.
[quote author="abraker95" date="1402618312"]Yet I get this when using msvc2012_opengl with no libGLESv2.dll in the directory of the file[/quote]I'm guessing this happened because you copied the MinGW DLLs (which DO need libEGL.dll/libGLESv2.dll), and Qt tried to load the non-OpenGL DLLs. Like I said before, don't mix.
[quote author="abraker95" date="1402618312"]Qt shows this:
“QWindowsWindow::setGeometry: Unable to set geometry 75×23+480+190 on QWidgetWindow/‘QPushButtonClassWindow’. Resulting geometry: 124×23+480+190 (frame: 8, 31, 8, 8, custom margin: 0, 0, 0, 0, minimum size: 0×0, maximum size: 16777215×16777215).[/quote]This message is safe and doesn't cause crashes. It appeared because you didn't specify a size for the QPushButton.[quote]Problem creating accessible interface for: QPushButton(0×88fd18)
Make sure to deploy Qt with accessibility plugins.”[/quote]This message is safe and doesn't cause crashes. It won't stop your program from running.Anyway, I recommend:
Uninstall the versions of Qt that you don't need. Only keep the one that matches your compiler.
Remove Qt from your PATH (if you put it there before)
Remove MinGW from your PATH (if you put it there before)
Delete the build-Hello_World-Desktop-Release folder
Start a new project using the Qt Creator wizard: File -> New File or Project... -> Applications -> Qt Widgets Application
-
[quote author="abraker95" date="1402618312"]
EDIT 2:
After adding the "Accessible" folder from the plugins directory the program works fine in Qt. It still crashes when not running from Qt, however.[/quote]That doesn't sound right. If you click the "Run" button, Qt Creator will find the DLLs automatically. You shouldn't need to copy anything.Where did you copy the folder into?
After you follow the steps in my previous post, please post a screenshot of Tools -> Options -> Build & Run -> Kits