Qt5.12版本编译MySQL驱动

1.安装Qt时将源码安装上

Qt5.12版本编译MySQL驱动_第1张图片
安装源码

我的安装版本是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)

网上的很多教程出现


Qt5.12版本编译MySQL驱动_第2张图片
错误1

是因为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


Qt5.12版本编译MySQL驱动_第3张图片
拷贝1

将C:\Program Files\MySQL\MySQL Server 8.0\lib\libmysql.dll拷贝至C:\Qt\Qt5.12.5\5.12.5\mingw73_64\bin
完事


参考资料

  1. Qt5.12.3编译mysql5.7.27源码及测试使用(msvc32位)
    https://blog.csdn.net/MMTS_yang/article/details/100540340
  2. 【Qt】Qt5.12编译MySQl5.7驱动(亲自测试成功)
    https://blog.csdn.net/dengjin20104042056/article/details/94129925

你可能感兴趣的:(Qt5.12版本编译MySQL驱动)