Can not find mysql when executing `qmake`
-
Hello everyone. This problem hungs for two days for me. And any helps will be appreciated.
I have installed MySQL 8.0.20 in my Windows. I've also added it's path to the enviroment.
My Qt version is 5.14.2. I want to build mysql driver by myself. So I go to the directory
C:\Qt\Qt5.14.2\5.14.2\Src\qtbase\src\plugins\sqldrivers
.This is the
sqldrivers.pro
:TEMPLATE = subdirs INCLUDEPATH += "C:/Program Files/MySQL/MySQL Server 8.0/include" LIBS += "C:/Program Files/MySQL/MySQL Server 8.0/lib/libmysql.lib" sqldrivers_standalone { _QMAKE_CACHE_ = $$shadowed($$SQLDRV_SRC_TREE)/.qmake.conf load(qt_configure) } qtConfig(sql-psql) : SUBDIRS += psql qtConfig(sql-mysql) : SUBDIRS += mysql qtConfig(sql-odbc) : SUBDIRS += odbc qtConfig(sql-tds) : SUBDIRS += tds qtConfig(sql-oci) : SUBDIRS += oci qtConfig(sql-db2) : SUBDIRS += db2 qtConfig(sql-sqlite) : SUBDIRS += sqlite qtConfig(sql-sqlite2) : SUBDIRS += sqlite2 qtConfig(sql-ibase) : SUBDIRS += ibase
I ran
qmake
and got the following messages:Command line: Global lib dirs: [C:\\openssl\\lib C:\\Utils\\my_sql\\mysql-5.7.25-winx64\\lib C:\\Utils\\postgresql\\pgsql\\lib] [] Global inc dirs: [C:\\openssl\\include C:\\Utils\\my_sql\\mysql-5.7.25-winx64\\include C:\\Utils\\postgresql\\pgsql\\include] [] looking for library 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 ... mysql.h not found in [] and global paths. => source produced no result. Trying source 6 (type inline) of library mysql ... => source failed condition '!config.win32'. test config.sqldrivers.libraries.mysql FAILED + cd /d C:\Qt\Qt5.14.2\5.14.2\Src\qtbase\src\plugins\sqldrivers\config.tests\tds && C:\Qt\Qt5.14.2\5.14.2\msvc2015_64\bin\qmake.exe "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += shared warn_off console single_arch" "QMAKE_LIBDIR += C:\\openssl\\lib C:\\Utils\\my_sql\\mysql-5.7.25-winx64\\lib C:\\Utils\\postgresql\\pgsql\\lib" "INCLUDEPATH += C:\\openssl\\include C:\\Utils\\my_sql\\mysql-5.7.25-winx64\\include C:\\Utils\\postgresql\\pgsql\\include" "QMAKE_USE += tds" "QMAKE_LIBS_TDS = -lNTWDBLIB" C:/Qt/Qt5.14.2/5.14.2/Src/qtbase/src/plugins/sqldrivers/config.tests/tds + cd /d C:\Qt\Qt5.14.2\5.14.2\Src\qtbase\src\plugins\sqldrivers\config.tests\tds && set MAKEFLAGS=& nmake clean && set MAKEFLAGS=& nmake > Microsoft (R) Program Maintenance Utility Version 14.00.24210.0 > Copyright (C) Microsoft Corporation. All rights reserved. > del main.obj > can not found C:\Qt\Qt5.14.2\5.14.2\Src\qtbase\src\plugins\sqldrivers\config.tests\tds\main.obj > Microsoft (R) Program Maintenance Utility Version 14.00.24210.0 > Copyright (C) Microsoft Corporation. All rights reserved. > cl -c -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -O2 -MD -W0 -EHsc -DUNICODE -D_UNICODE -DWIN32 -D_ENABLE_EXTENDED_ALIGNED_STORAGE -DWIN64 -DNDEBUG -I. -IC:\openssl\include -IC:\Utils\my_sql\mysql-5.7.25-winx64\include -IC:\Utils\postgresql\pgsql\include -IC:\Qt\Qt5.14.2\5.14.2\msvc2015_64\mkspecs\win32-msvc -Fo @C:\Users\voldikss\AppData\Local\Temp\nmE3C8.tmp > main.cpp > .\main.cpp(2): fatal error C1083: Cannot open include file: 'sybfront.h': No such file or directory > NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\cl.EXE"' : return code '0x2' > Stop. => source failed verification. Trying source 1 (type sybaseEnv) of library tds ... => source failed condition '!config.win32'. test config.sqldrivers.libraries.tds FAILED
-
Please follow the documentation instead doing some other strange stuff
-
Thank you for the reply.
Actually I followed the doc described here. Instead pass
include
andlib
through command line, I wrote them in the.pro
file. But I failed at the very first step(Checking for mysql .......no
).Also I tried
qmake -- MYSQL_INCDIR="C:/Program Files/MySQL/MySQL Server 8.0/include" MYSQL_LIBDIR="C:/Program Files/MySQL/MySQL Server 8.0/lib"
, still failed to check for mysql. -
If you are sure there exists
mysql.h
in your "C:/Program Files/MySQL/MySQL Server 8.0/include", then before running qmake again, try deletingconfig.cache
file.
Don't change .pro file, no need to pass include and lib to it, just run that qmake -- MYSQL_INCDIR="..." MYSQL_LIBDIR="..."P.S. For later convenience (avoiding the loading problem), if you are not using MSVC2015 version of Qt, I recommand that do not use
libmysql.dll
from MySQL 5.7.18+ / 8.0 or MySQL Connector C 6.1.10+, using older instead.
You can downloadMySQL Connector C 6.1.9
from:
https://downloads.mysql.com/archives/c-c/
Or downloadMySQL Server 5.7.17
archive files from:
https://downloads.mysql.com/archives/community/
(5.7.17 also can be installed from MySQL Installer)