Unsolved MySql Deploy App....HELP!!
-
The question is going to be silly but: Are you instantiating a QApplication (or Gui or Core) as the first thing in your main function ?
-
Yeah I am just using the normal Windows Application Setup Which has QApplication a (argc, argv); as the first line then just creates an instance of mainwindow.
-
Can you check what QCoreApplication::libraryPaths(); returns ?
-
When I run it from creator it returns the release directory of the release folder that it creates and puts everything into. In other words the directory it puts the .exe file into sorry it's bee a long few days.
-
Hi, one more thing you could try (since your app runs fine when launched from Qt Creator):
define the environment variable (SET QT_DEBUG_PLUGINS=1) also in Qt Creator (in the Projects Tab, you can set it in Build Environment) then start your app and compare the trace output to the one you got with errors before. -
Any other Ideas this just really doesn't make any sense. It runs perfectly from the directory that it is compiled to but I can't move it anywhere else and have the MySql drivers working.
-
Here's another: try skipping using windeployqt; instead switch to using manual deployment, use this nice guide
-
@hskoglund Ok tried it Same Thing!!
-
Hmmm... The deployment directory/the installation folder your app refuses to run from, is that inside C:\Program Files (x86) or a more normal folder like C:\Qt?
-
No I have it on the Desktop I'll try though!!
-
@shathcock Nope same thing!!!
-
Hmmmm, if I understand correctly: you have 2 directories/folders with identical contents but in different places on your C: drive. When you doubleciick to launch your app in one of them everything is fine and dandy, but when you try doubleclicking your app in the other directory you get that mysql plugin loading error?
-
@hskoglund Basically yes. The one directory that is does run out of is the one that it is placed into when it is compiled, in other words the build..........\release folder. When I move the app.exe file and try to build a distribution folder it just all falls apart. The app actually runs but no database connection. I will say this also I spent 3 days with it not running until I set the environment variable QT_QPA_PLATFORM_PLUGIN_PATH. Could that be the problem. Sorry my brain is fried from trying to figure this stuff out.
-
Aha, I see :-)
TheQT_QPA_PLATFORM_PLUGIN_PATH
fiddling explains why in that debug trace above there are no database dlls listed, because Qt is barking up the wrong tree I mean directory. (Because while settingQT_QPA_PLATFORM_PLUGIN_PATH
takes care of custom loading qwindows.dll from a directory of your choosing, it leaves other plugins like database guys stranded.)QSalDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers; <-- no DLLs listed here
QSqlDatabase: an instance of QCoreApplication is required for loading driver pluginsSo try placing the directory sqldrivers next to your .exe file, that should do it (just copy it from C:\5.5\msvc2013\plugins)
-
Ok so I already ad a sqldrivers folder in the same directory with the .exe file but I re-copied it anyway and changed the QT_QPA_PLATFORM_PLUGIN_PATH to point to the directory in that folder since I actually had pointed it to the directory in the qt installation and same thing still runs no database. I think I am loosing my mind over this.....
-
Yeah i know, thinking too much about Qt's plugins can be traumatic, I've been there too..
Anyway, simplify always helps, I suggest tossing thatQT_QPA_PLATFORM_PLUGIN_PATH
setting.
Then try to get your app running without any "This application failed to start because ... Qt platform plugin "windows"." dialog boxes. Once you done that, mysql functionality should be much easier to accomplish. -
Ok any Idea how to do that....lol I worked on that one for 2 days.
-
Well if you cannot get the qwindows.dll plugin to load the vanilla/default way, you could try setting another environment variable:
set QT_PLUGIN_PATH=pluginsdirectory
This one is better (causes less brain damage) because if you can get the qwindow.dll plugin loaded successfully that way, then qsqlmysql.dll should load as well. (The pluginsdirectory above should contain a platforms directory and a sqldrivers directory.) Also I've written about the different settings here. -
Wonderful I'll read it but here is something really strange. So I turned on debug and ran the program from the folder that it won't run from and I'm getting the windows plugin problem again however before I get that warning I get the QMYSQL driver not loaded error does that make any sense to you?
-
Yeah I've seen that, usually occurs because you have global/static variables with QDatabase contents or similar. If you have, move them to your MainWindow class. Qt and global variables do not mix well :-)