前言
之前都是在Qt5.51上开发,连接mysql数据库一直没有问题,换到5.15.2后一直报错
一查才发现\5.15.2\msvc2019_64\plugins\sqldrivers目录下没有qsqlmysql了,5.5.1是有的,5.15.2是要自己编译的。。。
下载源码
安装qt的时候没有选择下载源码,用在线安装器下载源码预计3小时。。。呵呵。。。果断选择在国内镜像网站下载,5.15.2Index of /qtproject/archive/qt/5.15/5.15.12/single/ (ustc.edu.cn)。两分钟搞定。
编译
把源码解压到qt安装路径下,打开\qtbase\src\plugins\sqldrivers\mysql,用Qtcreator打开mysql.pro。安装需要依赖mysql的库,我的电脑安装了mysql直接把mysql安装目录下的\MySQL\MySQL Server 8.0\include
\MySQL\MySQL Server 8.0\lib
复制到
\qtbase\src\plugins\sqldrivers\mysql
像这样
然后修改mysql.pro文件如下
TARGET = qsqlmysqlHEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp#屏蔽这个
#QMAKE_USE += mysql#以下路径根据自己的mysql安装路径添加
LIBS += -L$$PWD/lib -llibmysql
INCLUDEPATH += $$PWD/include
DEPENDPATH += $$PWD/includeOTHER_FILES += mysql.jsonPLUGIN_CLASS_NAME = QMYSQLDriverPlugin
include(../qsqldriverbase.pri)
移动文件
编译成功后就会在Qt安装所在盘符的plugins目录下生成qsqlmysql的release和debug版本,比如笔者的qt5.15.2安装在D盘,则会生成到D:\plugins\sqldrivers下,如下:
然后把这两个dll复制到\5.15.2\msvc2019_64\plugins\sqldrivers目录下,我还以为这样就行了,然后运行依然报错,但与之前不同:
这时还需要把\MySQL\MySQL Server 8.0\lib目录下的libmysql.dll和libmysql.lib复制到\5.15.2\msvc2019_64\bin目录下。
重新编译之后不报错了,打完收工。