Qt MySQL Driver Mingw32-make not working
-
@hobbyProgrammer Do a clean rebuild
-
@jsulm still results in getting the same error. I should rebuild sqldrivers.pro right?
-
@hobbyProgrammer said in Qt MySQL Driver Mingw32-make not working:
cd C:\Qt\5.12.5\Src\qtbase\src\plugins\sqldrivers
You're doing in source build which is bad.
Make sure there are no build artefacts. -
@hobbyProgrammer said in Qt MySQL Driver Mingw32-make not working:
why is that bad?
Because you're polluting source tree with build artefacts. If you then want to do a clean rebuild you need to delete all build artefacts and there can be many of them all over the place. Out of source builds are way easier:
- Create a build directory
- Go to that directory
- qmake
- make
- make install
For a clean rebuild delete everything inside build directory (or delete it and create again) and repeat steps 2..5.
By the way: QtCreator does out of source builds by default, so your source tree is clean and it's easier to use version control systems like Git :-)
-
I still did not get it to work.
What I did:
- Moved all the content from MySQL server directory (contained a lot of spaced) to C:/MySQL.
- Used these commands:
cd C:\Qt\5.12.5\Src\qtbase\src\plugins\sqldrivers qmake -- MYSQL_INCDIR=:C\MySQL\include "MYSQL_LIBDIR=C:\MySQL\lib" mingw32-make
yet it still doesn't work. Is there anyone who knows why and can help me? I really want to connect to my MySQL database..
-
@hobbyProgrammer said in Qt MySQL Driver Mingw32-make not working:
MYSQL_INCDIR=:C\MySQL\include
typo?
What was the output of the qmake command?
-
You have the : before the C. Is this just a typo here ?
-
@Christian-Ehrlicher @SGaist
yes that was a typo, but the output stays the same: "Project ERROR: Could not find feature sql-mysql." -
That's not the complete output. Please remove all intermediate files create by qmake (run first 'make distclean', then also remove qmake.cache) and rerun qmake again with the correct mysql parameters. Then show us the output.
-
@Christian-Ehrlicher right now this is my output:
C:\Qt\5.12.5\Src\qtbase\src\plugins\sqldrivers>qmake -- MYSQL_INCDIR=C:\MySQL\include "MYSQL_LIBDIR=C:\MySQL\lib"
Running configuration tests...
Done running configuration tests.Configure summary:
Qt Sql Drivers:
DB2 (IBM) .............................. no
InterBase .............................. no
MySql .................................. no
OCI (Oracle) ........................... no
ODBC ................................... yes
PostgreSQL ............................. no
SQLite2 ................................ no
SQLite ................................. yes
Using system provided SQLite ......... no
TDS (Sybase) ........................... noQt is now configured for building. Just run 'mingw32-make'.
Once everything is built, you must run 'mingw32-make install'.
Qt will be installed into 'C:\Qt\5.12.5\mingw73_32'.Prior to reconfiguration, make sure you remove any leftovers from
the previous build.Then I ran mingw32-make:
C:\Qt\5.12.5\Src\qtbase\src\plugins\sqldrivers>mingw32-make
cd odbc\ && ( if not exist Makefile C:\Qt\5.12.5\mingw73_32\bin\qmake.exe -o Makefile C:\Qt\5.12.5\Src\qtbase\src\plugins\sqldrivers\odbc\odbc.pro ) && mingw32-make -f Makefile
mingw32-make[1]: Entering directory 'C:/Qt/5.12.5/Src/qtbase/src/plugins/sqldrivers/odbc'
mingw32-make -f Makefile.Release all
mingw32-make[2]: Entering directory 'C:/Qt/5.12.5/Src/qtbase/src/plugins/sqldrivers/odbc'
mingw32-make[2]: Nothing to be done for 'all'.
mingw32-make[2]: Leaving directory 'C:/Qt/5.12.5/Src/qtbase/src/plugins/sqldrivers/odbc'
mingw32-make -f Makefile.Debug all
mingw32-make[2]: Entering directory 'C:/Qt/5.12.5/Src/qtbase/src/plugins/sqldrivers/odbc'
mingw32-make[2]: Nothing to be done for 'all'.
mingw32-make[2]: Leaving directory 'C:/Qt/5.12.5/Src/qtbase/src/plugins/sqldrivers/odbc'
mingw32-make[1]: Leaving directory 'C:/Qt/5.12.5/Src/qtbase/src/plugins/sqldrivers/odbc'
cd sqlite\ && ( if not exist Makefile C:\Qt\5.12.5\mingw73_32\bin\qmake.exe -o Makefile C:\Qt\5.12.5\Src\qtbase\src\plugins\sqldrivers\sqlite\sqlite.pro ) && mingw32-make -f Makefile
mingw32-make[1]: Entering directory 'C:/Qt/5.12.5/Src/qtbase/src/plugins/sqldrivers/sqlite'
mingw32-make -f Makefile.Release all
mingw32-make[2]: Entering directory 'C:/Qt/5.12.5/Src/qtbase/src/plugins/sqldrivers/sqlite'
mingw32-make[2]: Nothing to be done for 'all'.
mingw32-make[2]: Leaving directory 'C:/Qt/5.12.5/Src/qtbase/src/plugins/sqldrivers/sqlite'
mingw32-make -f Makefile.Debug all
mingw32-make[2]: Entering directory 'C:/Qt/5.12.5/Src/qtbase/src/plugins/sqldrivers/sqlite'
mingw32-make[2]: Nothing to be done for 'all'.
mingw32-make[2]: Leaving directory 'C:/Qt/5.12.5/Src/qtbase/src/plugins/sqldrivers/sqlite'
mingw32-make[1]: Leaving directory 'C:/Qt/5.12.5/Src/qtbase/src/plugins/sqldrivers/sqlite' -
@hobbyProgrammer said in Qt MySQL Driver Mingw32-make not working:
MySql .................................. no
So why do you even try to call mingw32-make when the configure step says it could not find the mysql stuff?
There is a config.log (iirc) where you can take a look into why the mysql plugins are not found.MYSQL_INCDIR=C:\MySQL\include "MYSQL_LIBDIR=C:\MySQL\lib"
Why one with " and one without? It's not needed ...
-
@Christian-Ehrlicher It seems like it cannot find the libraries in the global paths.
Command line: "MYSQL_INCDIR=C:\MySQL\include" "MYSQL_LIBDIR=C:\MySQL\lib"
Global lib dirs: [C:\openssl\lib C:\Utils\my_sql\mysql-5.6.11-win32\lib C:\Utils\postgresql\pgsql\lib] ["C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\ATLMFC\lib\x86" "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\lib\x86" "C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\lib\um\x86" "C:\Program Files (x86)\Windows Kits\10\lib\10.0.17763.0\ucrt\x86" "C:\Program Files (x86)\Windows Kits\10\lib\10.0.17763.0\um\x86"]
Global inc dirs: [C:\openssl\include C:\Utils\my_sql\mysql-5.6.11-win32\include C:\Utils\postgresql\pgsql\include] ["C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\ATLMFC\include" "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\include" "C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" "C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt" "C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" "C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" "C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt"]
...........
...........
Trying source 5 (type inline) of library mysql ...
None of [liblibmysql.dll.a liblibmysql.a libmysql.dll.a libmysql.a libmysql.lib] found in ["C:\Program Files (x86)\MySQL\MySQL Connector C++ 8.0\lib"] and global paths.
=> source produced no result. -
@hobbyProgrammer said in Qt MySQL Driver Mingw32-make not working:
Trying source 5 (type inline) of library mysql ...
There are 4 other tries finding mysql before, please show the output
-
this is the entire mysql section I believe:
Command line: "MYSQL_INCDIR=C:\MySQL\include" "MYSQL_LIBDIR=C:\MySQL\lib"
Global lib dirs: [C:\openssl\lib C:\Utils\my_sql\mysql-5.6.11-win32\lib C:\Utils\postgresql\pgsql\lib] ["C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\ATLMFC\lib\x86" "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\lib\x86" "C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\lib\um\x86" "C:\Program Files (x86)\Windows Kits\10\lib\10.0.17763.0\ucrt\x86" "C:\Program Files (x86)\Windows Kits\10\lib\10.0.17763.0\um\x86"]
Global inc dirs: [C:\openssl\include C:\Utils\my_sql\mysql-5.6.11-win32\include C:\Utils\postgresql\pgsql\include] ["C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\ATLMFC\include" "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\include" "C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" "C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt" "C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" "C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" "C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt"]
loaded result for library config.sqldrivers.libraries.db2
Trying source 0 (type inline) of library db2 ...
None of [libdb2cli.dll.a libdb2cli.a db2cli.dll.a db2cli.a db2cli.lib] found in [] and global paths.
=> source produced no result.
Trying source 1 (type inline) of library db2 ...
=> source failed condition '!config.win32'.
test config.sqldrivers.libraries.db2 FAILED
loaded result for library config.sqldrivers.libraries.ibase
Trying source 0 (type inline) of library ibase ...
None of [libgds32_ms.dll.a libgds32_ms.a gds32_ms.dll.a gds32_ms.a gds32_ms.lib] found in [] and global paths.
=> source produced no result.
Trying source 1 (type inline) of library ibase ...
=> source failed condition '!config.win32'.
test config.sqldrivers.libraries.ibase FAILED
loaded result for library config.sqldrivers.libraries.mysql
Trying source 0 (type mysqlConfig) of library mysql ...
mysql_config not found.
=> source produced no result.
Trying source 1 (type mysqlConfig) of library mysql ...
mysql_config not found.
=> source produced no result.
Trying source 2 (type mysqlConfig) of library mysql ...
mysql_config not found.
=> source produced no result.
Trying source 3 (type mysqlConfig) of library mysql ...
mysql_config not found.
=> source produced no result.
Trying source 4 (type inline) of library mysql ...
=> source failed condition '!config.win32'.
Trying source 5 (type inline) of library mysql ...
None of [liblibmysql.dll.a liblibmysql.a libmysql.dll.a libmysql.a libmysql.lib] found in ["C:\Program Files (x86)\MySQL\MySQL Connector C++ 8.0\lib"] and global paths.
=> source produced no result. -
@hobbyProgrammer said in Qt MySQL Driver Mingw32-make not working:
liblibmysql.dll.a liblibmysql.a libmysql.dll.a libmysql.a libmysql.lib]
So is one of these libraries available in C:\Program Files (x86)\MySQL\MySQL Connector C++ 8.0\lib ? I would guess no. It's in C:\Program Files\MySQL\MySQL Server 8.0\lib or C:\Program Files (x86)\MySQL\MySQL Server 8.0\lib depending on what you've installed.
-
@Christian-Ehrlicher yes i know that these libraries are inside the MySQL Server 8.0 folder, but I don't know why it's not searching there. I used these commands: C:\Qt\5.12.5\Src\qtbase\src\plugins\sqldrivers>qmake -- MYSQL_INCDIR=C:\Program Files\MySQL\MySQL Server 8.0\include "MYSQL_LIBDIR=C:\Program Files\MySQL\MySQL Server 8.0\lib"
I also moved the folder MySQL Server 8.0 to C:/MySQL, so I can access to a library without any spaces.
-
@hobbyProgrammer said in Qt MySQL Driver Mingw32-make not working:
C:\Program Files\MySQL\MySQL Server 8.0\include
put this in "" as it contains spaces