- 编译主要错误是因为mysql是64位,所以要用64位编译才行
- 打开C:\Qt\5.15.2\Src\qtbase\src\plugins\sqldrivers\mysql下的mysql.pro
修改pro文件
TARGET = qsqlmysql
HEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp
#QMAKE_USE += mysql
OTHER_FILES += mysql.json
PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
#$$quote是为了解决路径中空格
win32:LIBS += -L$$quote("C:/Program Files/MySQL/MySQL Server 5.7/lib/") -llibmysql
INCLUDEPATH += $$quote("C:/Program Files/MySQL/MySQL Server 5.7/include")
DEPENDPATH += $$quote("C:/Program Files/MySQL/MySQL Server 5.7/include")
include(../qsqldriverbase.pri)
DESTDIR = ../mysql/lib/
- 修改qsqldriverbase.pri
QT = core core-private sql-private
# For QMAKE_USE in the parent projects.
include($$shadowed($$PWD)/configure.pri)
PLUGIN_TYPE = sqldrivers
load(qt_plugin)
DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII
- 将编译生成的qsqlmysql.dll和qsqlmysqld.dll拷贝到Qt的安装目录下C:\Qt\5.15.2\mingw81_64\plugins\sqldrivers
- 将C:\Program Files\MySQL\MySQL Server 5.7\lib下的libmysql.lib,libmysql.dll拷贝到C:\Qt\5.15.2\mingw81_64\bin
- 编译32位库比较类似,下载32位数据库程序解压D:\mysql-5.7.29-win32
- 打开C:\Qt\5.15.2\Src\qtbase\src\plugins\sqldrivers\mysql下的mysql.pro
修改pro文件
TARGET = qsqlmysql
HEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp
#QMAKE_USE += mysql
OTHER_FILES += mysql.json
PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
win32:LIBS += -LD:\mysql-5.7.29-win32/lib -llibmysql
INCLUDEPATH += D:\mysql-5.7.29-win32\include
DEPENDPATH += D:\mysql-5.7.29-win32\include
include(../qsqldriverbase.pri)
DESTDIR = ../mysql/lib/
- 将编译生成的qsqlmysql.dll和qsqlmysqld.dll拷贝到Qt的安装目录下C:\Qt\5.15.2\mingw81_32\plugins\sqldrivers
- 将C:\Program Files\MySQL\MySQL Server 5.7\lib下的libmysql.lib,libmysql.dll拷贝到C:\Qt\5.15.2\mingw81_32\bin