Deploying qt5.2.0: won't find windows platform plugin
-
Hmm... just checking, you copied the plugins directory (not just the platforms) so that it is together with your .exe file and the .dlls?
EDIT: oh I forgot to say. to keep it simple: don't set any QT_DIR or other Qt-flavored environment variables on the target computer. (You can do it but I think it just complicates things.)
-
[quote]That directory “QTDIR/Qt5.2.0/5.2.0/mingw48_32/plugins/platforms” is written into your Qt files when you install it. And as you’ve discovered, it’s not so good on another computer :-)[/quote]No, Qt also searches your .exe's subfolders too. You do NOT need to modify qt.conf, or set environment variables, or add code to main.cpp.
You just need to copy the files into the correct subfolders. Simple guide here: http://qt-project.org/wiki/Deploy_an_Application_on_Windows
Example:
!http://i.imgur.com/S582DlV.png(DLL paths)! -
Yes, you're right, I tested with a barebones HelloQt (with no extra line in main.cpp!) and it worked when I copied it to another computer, set up as in your guide, specifically putting the platforms directory next to the .exe file. Good!
I think I'll update my blog post! -
Glad I could help. :) Thank you for blogging about Qt and for helping others use Qt!
-
Thanks!
I'm used to pay money to Microsoft for new Visual Studio releases, but now when I've switched to Qt and can download it for free, I figured blogging etc. is another way to pay.This infamous issue about not finding the windows plugin, it is a challenge to communicate to new users I think. Maybe for the next Qt conference, you can make T-shirts with that dialog box on them :-)
-
Thank you JKSH and hskoglund
I tried the same and it worked.I was facing problem when i was creating the setup for windows using Inno compiler.
When I was including platform dlls with its folder, it didn't include platform folder but instead directly copied qwindows.dll to the installed folder.
In Inno scripts, it was mentioned like this:
Source: "C:\MyQtApp\release\platforms*"; DestDir: "{app}"; Flags: ignoreversion
So I added "platforms" manually so that on installation all platform dll would be copied to platform folder.
Source: "C:\MyQtApp\release\platforms*"; DestDir: "{app}\platforms"; Flags: ignoreversion
-
Good!
BTW, I've updated "my blog post":http://www.tripleboot.org/?p=138 about deploying Qt now, so it's really fancy :-)
-
"That directory “QTDIR/Qt5.2.0/5.2.0/mingw48_32/plugins/platforms” is written into your Qt files when you install it"
Can you be more specific? Where exactly is it written too? I need to build x64 windows version of Qt 5.3 for VS2012 (which is not available for download). It would be good to set this correctly so that at least for developers it will work...
Thanks for any advice...
-
Hello Geonlko,
“That directory “QTDIR/Qt5.2.0/5.2.0/mingw48_32/plugins/platforms” is written into your Qt files when you install it” means
When we install qt (in this it is Qt5.2.0 mingw 32 bit version) in our system,
all packages get installed with it.In that packages you will find platform folder that has platform specific dlls.
These are required when we build setup for our Qt application.
For Qt 5.3 64 bit version, you have to go for VS2013, it is available
-
[quote author="geoniko" date="1401351479"]"That directory “QTDIR/Qt5.2.0/5.2.0/mingw48_32/plugins/platforms” is written into your Qt files when you install it"
Can you be more specific? Where exactly is it written too?[/quote]They are written inside the DLLs themselves.
In hindsight, that's a poor decision because it prevents people from moving their Qt installation to a different folders, but changing this behaviour isn't high on the priority list.
[quote]I need to build x64 windows version of Qt 5.3 for VS2012 (which is not available for download). It would be good to set this correctly so that at least for developers it will work...[/quote]When you run configure.bat, set the -prefix option to the path where you want to install Qt.
Then, make sure that your Qt libraries are located in this exact path on each of your developers' machines.
-
I stumbled upon this post, while having some deployment issues.
@hskoglund
You wrote about a post where you talk about how to set the path Qt uses to find plugins. But I think your blog changed, cause the correct post now lists 5+ ways, and it is located here:
http://www.tripleboot.org/?p=536 -
Hi, actually it's two different blog posts; what happened is that in March I wrote a blog post (the one I refer to at the top of this page) then I realized the topic about plugins and DLLs needed another blog post :-) and that's the one you're referring to.
-
bq. Note that the 32-bit MSVC DLL files are in SysWOW64 and the 64-bit files are in System32. Makes perfect sense, agreed?
I had to reread this one three times.
-
Hi, I was the original poster.
That post was just to notify you: JKSH's way is the exact good way to release your applications, and it worked for several applications in my case!Although, it still doesn't work for the original application I was trying to build..
I guess that's really just a bug, but I won't be able to post a bug ticket as the problem seems to be linked with the actual application, and I can't find what caused it in the application (which is pretty big unfortunately..) -
Hi,
[quote author="AlterX" date="1416406048"]I have same problem using Qt 5.3
Despite I have tried all combinations, I am not able to lauch application: it always says that it is not able to find windows plugin!!![/quote]What combinations did you try?Did you follow the instructions at http://qt-project.org/wiki/Deploy_an_Application_on_Windows closely?
-
[quote author="AlterX" date="1416406280"]yes, I have my app and then platforms/qwindows.dll
then I tried plugins/platforms/qwindows.dll
then qwindows.dll in same dir of exe
I tried to use qt.conf and put plugins path to "."
All above leads to same error![/quote]It's not just about qwindows.dll. You need to make sure all the other DLLs are in the correct places too.Please follow every single step under "Initial deployment (Quick and dirty)" in the Wiki. If it still doesn't work, please post a screenshot of your deployment folder.
Also, did you create a Debug build or Release build?