QT MYSQL插件的编译

Linux和windows的编译步骤基本一致,这里以windows下为例子。

一、QT源码的下载

这是5.13.1的QT源码下载地址:

http://download.qt.io/archive/qt/5.13/5.13.1/single/qt-everywhere-src-5.13.1.zip

二、解压缩源码

把解压的源码文件夹名称改成Src,放入QT安装路径下D:\Qt\Qt5.13.1\5.13.1

三、修改mysql.pro文件

然后找到D:\Qt\Qt5.13.1\5.13.1\Src\qtbase\src\plugins\sqldrivers\mysql\mysql.pro

打开mysql.pro工程,加入

1
2
3
4
//这是我的mysql头文件路径
INCLUDEPATH+="C:\Program Files\MySQL\MySQL Server 8.0\include"
//这是我的mysql库文件路径
LIBS+="C:\Program Files\MySQL\MySQL Server 8.0\lib\libmysql.lib"

然后去掉

1
QT+=mysql

最后整个mysql.pro文件如下:

windows

1
2
3
4
5
6
7
8
9
10
11
12
TARGET = qsqlmysql

HEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp

INCLUDEPATH+="C:\Program Files\MySQL\MySQL Server 8.0\include"
LIBS+="C:\Program Files\MySQL\MySQL Server 8.0\lib\libmysql.lib"

OTHER_FILES += mysql.json

PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
include(../qsqldriverbase.pri)

Linux

1
2
3
4
5
6
7
8
9
10
11
12
TARGET = qsqlmysql

HEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp

INCLUDEPATH+="/usr/include/mysql"
LIBS+="/usr/lib/x86_64-linux-gnu/libmysqlclient.so"

OTHER_FILES += mysql.json

PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
include(../qsqldriverbase.pri)

四、增加make参数

按下QT creator左侧项目按钮,

  1. 添加BUILD步骤;
  2. Make;
  3. Make argums;
  4. 写入install.

五、编译构建安装

  1. 鼠标右击项目,选择构建;
  2. 按下QT creator左下角小锤子的按钮构建项目即可.

最后就可以在这个目录下D:\Qt\Qt5.13.1\5.13.1\msvc2017_64\plugins\sqldrivers

看到编译好的MYSQL库:qsqlmysqld.dllqsqlmysql.dll

六、如果还是报错

1
2
3
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
不能连接 connect to mysql error "Driver not loaded Driver not loaded"
  1. 打开这个目录C:\Program Files\MySQL\MySQL Server 8.0\lib;
  2. 复制**libmysql.dll**;
  3. 黏贴到D:\Qt\Qt5.13.1\5.13.1\msvc2017_64\bin.