最近搞客户端版地图,原本使用的Qt版本是5.12.0,发现有bug,做了升级,现版本为Qt 5.12.6,发现没有自带qsqlmysql.dll和qsqlmysqld.dll ,当然把5.12.0版本下的拷贝过来无法直接使用会提示版本不兼容,需要自己编译源码,生成这两个驱动dll。开始搞
找到mysql驱动项目工程
安装目录下位置:D:\sdk\Qt5.12.6\5.12.6\Src\qtbase\src\plugins\sqldrivers\mysql
双加mysql.pro文件,启动工程。
下载mysql库文件
官网下载有些费劲,你懂得,这里直接放到网盘了
链接: https://pan.baidu.com/s/1PkmjmgkHZIZnHnxe733eog
提取码: c9t9
我的下载下来解压到:D:\software\mysql-connector-c-6.1.11-winx64 这里了
引入mysql头文件和库文件
修改mysql.pro文件,添加如下
INCLUDEPATH += D:/software/mysql-connector-c-6.1.11-winx64/include
LIBS += D:/software/mysql-connector-c-6.1.11-winx64/lib/libmysql.lib
include(../qsqldriverbase.pri)
#DESTDIR = ../mysql/MinGW64lib/
DESTDIR = ../mysql/MSVC64lib/
修改其他文件
1. 注释mysql.pro 文件中的QMAKE_USE += mysql
2. 打开上级目录下qsqldriverbase.pri文件,将 include($ $ shadowed( $ $ PWD)/qtsqldrivers-config.pri) 注释掉,然后添加 include(./configure.pri),保存
编译,使用
1.编译成功后,会在 D:\sdk\Qt5.12.6\5.12.6\Src\qtbase\src\plugins\sqldrivers\mysql\MinGW64lib 目录下生成驱动库文件
2.将qsqlmysql.dll , qsqlmysqld.dll两个文件复制到D:\sdk\Qt5.12.6\5.12.6\mingw73_64\plugins\sqldrivers 目录,同时把 D:\software\mysql-connector-c-6.1.11-winx64\lib目录下的libmysql.dll文件复制到 D:\sdk\Qt5.12.6\5.12.6\mingw73_64\bin 目录。
注意:
1.qt编译器要选择对应的mysql位数, mysql是32位的就要用32位的编译器,64位的就要用64位的编译器。
2.MinGW和MSVC编译器均可,切记编译完后生成的两个dll与mysql的两个dll复制到对应的编译器插件目录与bin目录下。(上面是MinGW编译器案例,其他类似)