How to create Qt 6.5 mysql driver with cmake?
-
@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.
-
@JonB I did it and the application output is so different than the previous one: :o
qt.core.plugin.factoryloader: checking directory path "C:/Qt/6.5.1/mingw_64/plugins/platforms" ...
qt.core.plugin.factoryloader: looking at "C:/Qt/6.5.1/mingw_64/plugins/platforms/qdirect2d.dll"
qt.core.plugin.loader: Found metadata in lib C:/Qt/6.5.1/mingw_64/plugins/platforms/qdirect2d.dll, metadata=
{
"IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
"MetaData": {
"Keys": [
"direct2d"
]
},
"archlevel": 2,
"className": "QWindowsDirect2DIntegrationPlugin",
"debug": false,
"version": 394496
}qt.core.plugin.factoryloader: Got keys from plugin meta data QList("direct2d")
qt.core.plugin.factoryloader: looking at "C:/Qt/6.5.1/mingw_64/plugins/platforms/qminimal.dll"
qt.core.plugin.loader: Found metadata in lib C:/Qt/6.5.1/mingw_64/plugins/platforms/qminimal.dll, metadata=
{
"IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
"MetaData": {
"Keys": [
"minimal"
]
},
"archlevel": 2,
"className": "QMinimalIntegrationPlugin",
"debug": false,
"version": 394496
}qt.core.plugin.factoryloader: Got keys from plugin meta data QList("minimal")
qt.core.plugin.factoryloader: looking at "C:/Qt/6.5.1/mingw_64/plugins/platforms/qoffscreen.dll"
qt.core.plugin.loader: Found metadata in lib C:/Qt/6.5.1/mingw_64/plugins/platforms/qoffscreen.dll, metadata=
{
"IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
"MetaData": {
"Keys": [
"offscreen"
]
},
"archlevel": 2,
"className": "QOffscreenIntegrationPlugin",
"debug": false,
"version": 394496
}qt.core.plugin.factoryloader: Got keys from plugin meta data QList("offscreen")
qt.core.plugin.factoryloader: looking at "C:/Qt/6.5.1/mingw_64/plugins/platforms/qwindows.dll"
qt.core.plugin.loader: Found metadata in lib C:/Qt/6.5.1/mingw_64/plugins/platforms/qwindows.dll, metadata=
{
"IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
"MetaData": {
"Keys": [
"windows"
]
},
"archlevel": 2,
"className": "QWindowsIntegrationPlugin",
"debug": false,
"version": 394496
}qt.core.plugin.factoryloader: Got keys from plugin meta data QList("windows")
qt.core.plugin.factoryloader: checking directory path "C:/Users/Saad/Documents/qt c++/build-database-Desktop_Qt_6_5_1_MinGW_64_bit-Debug/debug/platforms" ...
qt.core.library: "C:/Qt/6.5.1/mingw_64/plugins/platforms/qwindows.dll" loaded library
qt.core.plugin.factoryloader: checking directory path "C:/Qt/6.5.1/mingw_64/plugins/platformthemes" ...
qt.core.plugin.factoryloader: checking directory path "C:/Users/Saad/Documents/qt c++/build-database-Desktop_Qt_6_5_1_MinGW_64_bit-Debug/debug/platformthemes" ...
qt.core.plugin.factoryloader: checking directory path "C:/Qt/6.5.1/mingw_64/plugins/styles" ...
qt.core.plugin.factoryloader: looking at "C:/Qt/6.5.1/mingw_64/plugins/styles/qwindowsvistastyle.dll"
qt.core.plugin.loader: Found metadata in lib C:/Qt/6.5.1/mingw_64/plugins/styles/qwindowsvistastyle.dll, metadata=
{
"IID": "org.qt-project.Qt.QStyleFactoryInterface",
"MetaData": {
"Keys": [
"windowsvista"
]
},
"archlevel": 2,
"className": "QWindowsVistaStylePlugin",
"debug": false,
"version": 394496
}qt.core.plugin.factoryloader: Got keys from plugin meta data QList("windowsvista")
qt.core.plugin.factoryloader: checking directory path "C:/Users/Saad/Documents/qt c++/build-database-Desktop_Qt_6_5_1_MinGW_64_bit-Debug/debug/styles" ...
qt.core.library: "C:/Qt/6.5.1/mingw_64/plugins/styles/qwindowsvistastyle.dll" loaded library
qt.core.plugin.factoryloader: checking directory path "C:/Qt/6.5.1/mingw_64/plugins/sqldrivers" ...
qt.core.plugin.factoryloader: looking at "C:/Qt/6.5.1/mingw_64/plugins/sqldrivers/qsqlite.dll"
qt.core.plugin.loader: Found metadata in lib C:/Qt/6.5.1/mingw_64/plugins/sqldrivers/qsqlite.dll, metadata=
{
"IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
"MetaData": {
"Keys": [
"QSQLITE"
]
},
"archlevel": 2,
"className": "QSQLiteDriverPlugin",
"debug": false,
"version": 394496
}qt.core.plugin.factoryloader: Got keys from plugin meta data QList("QSQLITE")
qt.core.plugin.factoryloader: looking at "C:/Qt/6.5.1/mingw_64/plugins/sqldrivers/qsqlmysql.dll"
qt.core.plugin.loader: Found metadata in lib C:/Qt/6.5.1/mingw_64/plugins/sqldrivers/qsqlmysql.dll, metadata=
{
"IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
"MetaData": {
"Keys": [
"QMYSQL",
"QMARIADB"
]
},
"archlevel": 2,
"className": "QMYSQLDriverPlugin",
"debug": false,
"version": 394496
}qt.core.plugin.factoryloader: Got keys from plugin meta data QList("QMYSQL", "QMARIADB")
qt.core.plugin.factoryloader: looking at "C:/Qt/6.5.1/mingw_64/plugins/sqldrivers/qsqlodbc.dll"
qt.core.plugin.loader: Found metadata in lib C:/Qt/6.5.1/mingw_64/plugins/sqldrivers/qsqlodbc.dll, metadata=
{
"IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
"MetaData": {
"Keys": [
"QODBC"
]
},
"archlevel": 2,
"className": "QODBCDriverPlugin",
"debug": false,
"version": 394496
}qt.core.plugin.factoryloader: Got keys from plugin meta data QList("QODBC")
qt.core.plugin.factoryloader: looking at "C:/Qt/6.5.1/mingw_64/plugins/sqldrivers/qsqlpsql.dll"
qt.core.plugin.loader: Found metadata in lib C:/Qt/6.5.1/mingw_64/plugins/sqldrivers/qsqlpsql.dll, metadata=
{
"IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
"MetaData": {
"Keys": [
"QPSQL"
]
},
"archlevel": 2,
"className": "QPSQLDriverPlugin",
"debug": false,
"version": 394496
}qt.core.plugin.factoryloader: Got keys from plugin meta data QList("QPSQL")
qt.core.plugin.factoryloader: checking directory path "C:/Users/Saad/Documents/qt c++/build-database-Desktop_Qt_6_5_1_MinGW_64_bit-Debug/debug/sqldrivers" ...
qt.core.plugin.factoryloader: looking at "C:/Users/Saad/Documents/qt c++/build-database-Desktop_Qt_6_5_1_MinGW_64_bit-Debug/debug/sqldrivers/qsqlmysql.dll"
qt.core.plugin.loader: Found metadata in lib C:/Users/Saad/Documents/qt c++/build-database-Desktop_Qt_6_5_1_MinGW_64_bit-Debug/debug/sqldrivers/qsqlmysql.dll, metadata=
{
"IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
"MetaData": {
"Keys": [
"QMYSQL",
"QMARIADB"
]
},
"archlevel": 2,
"className": "QMYSQLDriverPlugin",
"debug": false,
"version": 394496
}qt.core.plugin.factoryloader: Got keys from plugin meta data QList("QMYSQL", "QMARIADB")
qt.core.library: "C:/Qt/6.5.1/mingw_64/plugins/sqldrivers/qsqlmysql.dll" cannot load: Cannot load library C:\Qt\6.5.1\mingw_64\plugins\sqldrivers\qsqlmysql.dll: The specified module could not be found.
qt.core.plugin.loader: QLibraryPrivate::loadPlugin failed on "C:/Qt/6.5.1/mingw_64/plugins/sqldrivers/qsqlmysql.dll" : "Cannot load library C:\Qt\6.5.1\mingw_64\plugins\sqldrivers\qsqlmysql.dll: The specified module could not be found."
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMARIADB QMYSQL QODBC QPSQL
qt.core.plugin.factoryloader: checking directory path "C:/Qt/6.5.1/mingw_64/plugins/iconengines" ...
qt.core.plugin.factoryloader: looking at "C:/Qt/6.5.1/mingw_64/plugins/iconengines/qsvgicon.dll"
qt.core.plugin.loader: Found metadata in lib C:/Qt/6.5.1/mingw_64/plugins/iconengines/qsvgicon.dll, metadata=
{
"IID": "org.qt-project.Qt.QIconEngineFactoryInterface",
"MetaData": {
"Keys": [
"svg",
"svgz",
"svg.gz"
]
},
"archlevel": 2,
"className": "QSvgIconPlugin",
"debug": false,
"version": 394496
}qt.core.plugin.factoryloader: Got keys from plugin meta data QList("svg", "svgz", "svg.gz")
qt.core.plugin.factoryloader: checking directory path "C:/Users/Saad/Documents/qt c++/build-database-Desktop_Qt_6_5_1_MinGW_64_bit-Debug/debug/iconengines" ...
qt.core.plugin.factoryloader: checking directory path "C:/Qt/6.5.1/mingw_64/plugins/imageformats" ...
qt.core.plugin.factoryloader: looking at "C:/Qt/6.5.1/mingw_64/plugins/imageformats/qgif.dll"
qt.core.plugin.loader: Found metadata in lib C:/Qt/6.5.1/mingw_64/plugins/imageformats/qgif.dll, metadata=
{
"IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
"MetaData": {
"Keys": [
"gif"
],
"MimeTypes": [
"image/gif"
]
},
"archlevel": 2,
"className": "QGifPlugin",
"debug": false,
"version": 394496
}qt.core.plugin.factoryloader: Got keys from plugin meta data QList("gif")
qt.core.plugin.factoryloader: looking at "C:/Qt/6.5.1/mingw_64/plugins/imageformats/qicns.dll"
qt.core.plugin.loader: Found metadata in lib C:/Qt/6.5.1/mingw_64/plugins/imageformats/qicns.dll, metadata=
{
"IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
"MetaData": {
"Keys": [
"icns"
],
"MimeTypes": [
"image/x-icns"
]
},
"archlevel": 2,
"className": "QICNSPlugin",
"debug": false,
"version": 394496
}qt.core.plugin.factoryloader: Got keys from plugin meta data QList("icns")
qt.core.plugin.factoryloader: looking at "C:/Qt/6.5.1/mingw_64/plugins/imageformats/qico.dll"
qt.core.plugin.loader: Found metadata in lib C:/Qt/6.5.1/mingw_64/plugins/imageformats/qico.dll, metadata=
{
"IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
"MetaData": {
"Keys": [
"ico",
"cur"
],
"MimeTypes": [
"image/vnd.microsoft.icon",
"image/vnd.microsoft.icon"
]
},
"archlevel": 2,
"className": "QICOPlugin",
"debug": false,
"version": 394496
}qt.core.plugin.factoryloader: Got keys from plugin meta data QList("ico", "cur")
qt.core.plugin.factoryloader: looking at "C:/Qt/6.5.1/mingw_64/plugins/imageformats/qjpeg.dll"
qt.core.plugin.loader: Found metadata in lib C:/Qt/6.5.1/mingw_64/plugins/imageformats/qjpeg.dll, metadata=
{
"IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
"MetaData": {
"Keys": [
"jpg",
"jpeg"
],
"MimeTypes": [
"image/jpeg",
"image/jpeg"
]
},
"archlevel": 2,
"className": "QJpegPlugin",
"debug": false,
"version": 394496
}qt.core.plugin.factoryloader: Got keys from plugin meta data QList("jpg", "jpeg")
qt.core.plugin.factoryloader: looking at "C:/Qt/6.5.1/mingw_64/plugins/imageformats/qsvg.dll"
qt.core.plugin.loader: Found metadata in lib C:/Qt/6.5.1/mingw_64/plugins/imageformats/qsvg.dll, metadata=
{
"IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
"MetaData": {
"Keys": [
"svg",
"svgz"
],
"MimeTypes": [
"image/svg+xml",
"image/svg+xml-compressed"
]
},
"archlevel": 2,
"className": "QSvgPlugin",
"debug": false,
"version": 394496
}qt.core.plugin.factoryloader: Got keys from plugin meta data QList("svg", "svgz")
qt.core.plugin.factoryloader: looking at "C:/Qt/6.5.1/mingw_64/plugins/imageformats/qtga.dll"
qt.core.plugin.loader: Found metadata in lib C:/Qt/6.5.1/mingw_64/plugins/imageformats/qtga.dll, metadata=
{
"IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
"MetaData": {
"Keys": [
"tga"
],
"MimeTypes": [
"image/x-tga"
]
},
"archlevel": 2,
"className": "QTgaPlugin",
"debug": false,
"version": 394496
}qt.core.plugin.factoryloader: Got keys from plugin meta data QList("tga")
qt.core.plugin.factoryloader: looking at "C:/Qt/6.5.1/mingw_64/plugins/imageformats/qtiff.dll"
qt.core.plugin.loader: Found metadata in lib C:/Qt/6.5.1/mingw_64/plugins/imageformats/qtiff.dll, metadata=
{
"IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
"MetaData": {
"Keys": [
"tiff",
"tif"
],
"MimeTypes": [
"image/tiff",
"image/tiff"
]
},
"archlevel": 2,
"className": "QTiffPlugin",
"debug": false,
"version": 394496
}qt.core.plugin.factoryloader: Got keys from plugin meta data QList("tiff", "tif")
qt.core.plugin.factoryloader: looking at "C:/Qt/6.5.1/mingw_64/plugins/imageformats/qwbmp.dll"
qt.core.plugin.loader: Found metadata in lib C:/Qt/6.5.1/mingw_64/plugins/imageformats/qwbmp.dll, metadata=
{
"IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
"MetaData": {
"Keys": [
"wbmp"
],
"MimeTypes": [
"image/vnd.wap.wbmp"
]
},
"archlevel": 2,
"className": "QWbmpPlugin",
"debug": false,
"version": 394496
}qt.core.plugin.factoryloader: Got keys from plugin meta data QList("wbmp")
qt.core.plugin.factoryloader: looking at "C:/Qt/6.5.1/mingw_64/plugins/imageformats/qwebp.dll"
qt.core.plugin.loader: Found metadata in lib C:/Qt/6.5.1/mingw_64/plugins/imageformats/qwebp.dll, metadata=
{
"IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
"MetaData": {
"Keys": [
"webp"
],
"MimeTypes": [
"image/webp"
]
},
"archlevel": 2,
"className": "QWebpPlugin",
"debug": false,
"version": 394496
}qt.core.plugin.factoryloader: Got keys from plugin meta data QList("webp")
qt.core.plugin.factoryloader: checking directory path "C:/Users/Saad/Documents/qt c++/build-database-Desktop_Qt_6_5_1_MinGW_64_bit-Debug/debug/imageformats" ...
qt.core.library: "C:/Qt/6.5.1/mingw_64/plugins/imageformats/qgif.dll" loaded library
qt.core.library: "C:/Qt/6.5.1/mingw_64/plugins/imageformats/qicns.dll" loaded library
qt.core.library: "C:/Qt/6.5.1/mingw_64/plugins/imageformats/qico.dll" loaded library
qt.core.library: "C:/Qt/6.5.1/mingw_64/plugins/imageformats/qjpeg.dll" loaded library
qt.core.library: "C:/Qt/6.5.1/mingw_64/plugins/imageformats/qsvg.dll" loaded library
qt.core.library: "C:/Qt/6.5.1/mingw_64/plugins/imageformats/qtga.dll" loaded library
qt.core.library: "C:/Qt/6.5.1/mingw_64/plugins/imageformats/qtiff.dll" loaded library
qt.core.library: "C:/Qt/6.5.1/mingw_64/plugins/imageformats/qwbmp.dll" loaded library
qt.core.library: "C:/Qt/6.5.1/mingw_64/plugins/imageformats/qwebp.dll" cannot load: Cannot load library C:\Qt\6.5.1\mingw_64\plugins\imageformats\qwebp.dll: The specified module could not be found.
qt.core.plugin.loader: QLibraryPrivate::loadPlugin failed on "C:/Qt/6.5.1/mingw_64/plugins/imageformats/qwebp.dll" : "Cannot load library C:\Qt\6.5.1\mingw_64\plugins\imageformats\qwebp.dll: The specified module could not be found."
qt.core.plugin.factoryloader: checking directory path "C:/Qt/6.5.1/mingw_64/plugins/accessible" ...
qt.core.plugin.factoryloader: checking directory path "C:/Users/Saad/Documents/qt c++/build-database-Desktop_Qt_6_5_1_MinGW_64_bit-Debug/debug/accessible" ...
qt.core.plugin.factoryloader: checking directory path "C:/Qt/6.5.1/mingw_64/plugins/accessiblebridge" ...
qt.core.plugin.factoryloader: checking directory path "C:/Users/Saad/Documents/qt c++/build-database-Desktop_Qt_6_5_1_MinGW_64_bit-Debug/debug/accessiblebridge" ... -
qt.core.library: "C:/Qt/6.5.1/mingw_64/plugins/sqldrivers/qsqlmysql.dll" cannot load: Cannot load library C:\Qt\6.5.1\mingw_64\plugins\sqldrivers\qsqlmysql.dll: The specified module could not be found. qt.core.plugin.loader: QLibraryPrivate::loadPlugin failed on "C:/Qt/6.5.1/mingw_64/plugins/sqldrivers/qsqlmysql.dll" : "Cannot load library C:\Qt\6.5.1\mingw_64\plugins\sqldrivers\qsqlmysql.dll: The specified module could not be found." QSqlDatabase: QMYSQL driver not loaded
Well that is your reason. Either
C:\Qt\6.5.1\mingw_64\plugins\sqldrivers\qsqlmysql.dll
does not exist, or it is not loadable because e.g. it requires a dependent DLL and that cannot be found. -
@artwaw No, sir. I am just showing that I have placed those files in the output folders. I am showing that I have placed those in each and every place where I was told to place them above. Also, it's available in the driver folder too. But, it's ok now 😅