1.安装Qt时将源码安装上
我的安装版本是5.12.5,安装时没截图,就随便找了张图
要是,没有安装也可以补救,下载源码即可(下载对应自己Qt版本的源码)
https://download.qt.io/archive/qt/5.12/5.12.2/submodules/
下载MySQL驱动的源码qtbase-everywhere-src-5.12.2
2.进入MySQL驱动的项目
我的安装地址对应是C:\Qt\Qt5.12.5\5.12.5\Src\qtbase\src\plugins\sqldrivers\mysql
下载的源码自己找找
双击mysql.pro进入项目
3.修改mysql.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
LIBS += "C:/Program Files/MySQL/MySQL Server 8.0/lib/libmysql.lib" //根据自己的mysql安装地址填写
INCLUDEPATH += "C:/Program Files/MySQL/MySQL Server 8.0/include"
DEPENDPATH += "C:/Program Files/MySQL/MySQL Server 8.0/include"
include(../qsqldriverbase.pri)
网上的很多教程出现
是因为LIBS、INCLUDEPAT、DEPENDPATH后的地址没加双引号,地址中若是有空格就会出现找不到库的报错
4.修改qsqldriverbase.pri
若编译后出现qtsqldrivers-config.pri no such file or directory报错,需要修改qsqldriverbase.pri
QT = core core-private sql-private
# For QMAKE_USE in the parent projects.
# include($$shadowed($$PWD)/qtsqldrivers-config.pri)
include(./configure.pri) //这一处有修改
PLUGIN_TYPE = sqldrivers
load(qt_plugin)
DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII
5.编译
直接用Qt Creator编译,没啥好说的,由于我在mysql.pro中没有指定生成位置,所以生成的驱动在根目录下
C:\plugins\sqldrivers
6.拷贝驱动
将生成的文件拷贝至C:\Qt\Qt5.12.5\5.12.5\mingw73_64\plugins\sqldrivers
将C:\Program Files\MySQL\MySQL Server 8.0\lib\libmysql.dll拷贝至C:\Qt\Qt5.12.5\5.12.5\mingw73_64\bin
完事
参考资料
- Qt5.12.3编译mysql5.7.27源码及测试使用(msvc32位)
https://blog.csdn.net/MMTS_yang/article/details/100540340 - 【Qt】Qt5.12编译MySQl5.7驱动(亲自测试成功)
https://blog.csdn.net/dengjin20104042056/article/details/94129925