How to create Qt 6.5 mysql driver with cmake?
-
@Saad02
I can only say that, although you seem to have done the right thing, this is not correct output when settingQT_DEBUG_PLUGINS=1
. You can verify that by searching the hundreds of occasions it has been used in this forum's questions or on the web.Since I don't know exactly about Creator I suggest you set it in a shell and run your executable from there.
-
@Saad02 said in How to create Qt 6.5 mysql driver with cmake?:
Application Output:
There should be more output if QT_DEBUG_PLUGINS was set - is that really all you get?
-
@JonB said in How to create Qt 6.5 mysql driver with cmake?:
Since I don't know exactly about Creator I suggest you set it [
set QT_DEBUG_PLUGINS=1
] in a shell and run your executable from there.Did you try this? You have to know how to run your executable outside of Creator, else it will be useless in the the long-term, you cannot always require your code to run inside Creator!
-
@Saad02
I wish you would show a screenshot of what you do in that terminal immediately after theset QT_DEBUG_PLUGINS=1
....If you read through this forum or search the web you will find "hundreds" of occasions where people get a
QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QMARIADB QMYSQL QODBC QPSQL
and they set the environment variable, run their application and get diagnostic output as to why it has failed to load
QMYSQL
driver. Not one of them has ever reported it failed to produce the diagnostic output. I find it hard to believe your case is any different..... -
@Saad02
I already suggested you run this in a terminal, not in Creator, so we can see what is going on. Repeatedly showing it is not working from your Creator isn't getting us anywhere.I don't know why you don't see the diagnostic output in Creator.
It occurs to me: when run in terminal I am not sure where you get the diagnostic output under Windows. It may not be in terminal, may have to go to some debugger. You can probably search the forum or elsewhere, I don't use Windows for Qt. Otherwise I leave someone else to suggest. -
@Saad02 could you show us some code you're running? You may edit out sensitive data like passwords etc. For example, if I remove a line like
QSqlDatabase sqlConn = QSqlDatabase::addDatabase(QStringLiteral("QMYSQL"));
then there's no QMYSQL plugin debug output despite QT_DEBUG_PLUGINS
-
@Saad02 said in How to create Qt 6.5 mysql driver with cmake?:
I have no idea about it if u r saying me to run that application directly from the terminal.
Yes, that's what he's asking for (I believe):
From a terminal window:
- go to the folder with your executable
- enter "./<your executable filename>
- hit return
- post the output
-
@Saad02
Yes, what you finally show is what we wanted to see tested.But now I don't understand. OK, it does not show the verbose diagnostic output expected from
set QT_DEBUG_PLUGINS=1
, that is "surprising". However, it does not show theQSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QMARIADB QMYSQL QODBC QPSQL
from your earlier screenshot either. And I think you are saying the database driver still does not load, so you should get that at least.
I did say earlier: I am not a Windows Qt user, but
It occurs to me: when run in terminal I am not sure where you get the diagnostic output under Windows. It may not be in terminal, may have to go to some debugger. You can probably search the forum or elsewhere, I don't use Windows for Qt. Otherwise I leave someone else to suggest.
It may be that under Windows you do not get diagnostic output in the terminal when launching from there. You will have to search the forum or Google for this, or wait for someone else to comment.
-
@JonB Ok, I understand!
it is not visible in the terminal- "QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMARIADB QMYSQL QODBC QPSQL" but I can see it in Qt creator?
Should I wait any longer or shift to qt 5 as it uses qmake and has an easier process to create a MySQL driver for qt? -
@Saad02
https://forum.qt.io/topic/41943/platform-plugin-windows/8 from 2014(!) says:Hi, just an update on why QT_DEBUG_PLUGINS=1 doesn't work as expected when you launch a Qt app from the command line (as it does on Linux and Macs): I found that for Windows MSVC and MinGW compilers, Qt routes the texts to OutputDebugString(), that's why the CMD window shows no output.
Instead, to see the output, download "Sysinternal's DbgView":http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx
That link still seems valid. You could try downloading it and setting it up to see if you can get the output. Or @hskoglund goes through steps there to make it work in Creator you could try following that precisely.
Or you could try setting it in your source code. As the very first statement in
main()
, before you create any QApplication or whatever instance, try inserting:putenv("QT_DEBUG_PLUGINS=1");
(You may need to
#include <stdlib.h>
or whatever for MinGW.) Then if you run for debug in Qt Creator you may/ought find it produces the diagnostic output in the Application Output pane.As for changing from Qt6 to Qt5. Although I am quite happy with Qt5, it is probably a big step for you to "downgrade" from the latest major release in the hope of resolving some issue. And there is no guarantee it won't behave just the same under Qt5.
For now I would pursue my suggestions above to try to get the diagnostic output.