QT5.14连接mysql8.0的驱动的编译和使用

1.编译.pro文件

首先打开QT安装目录:C:\Qt\Qt5.14.2\5.14.2\Src\qtbase\src\plugins\sqldrivers\mysql

找到文件mysql.pro,使用qtcreator打开。这里选择时注意,要选择与mysql和QT的位数相同的位数的编译器,因为我的都是64位的,因此这里选择第二个。选择之后点击下方的“Configure Project”按钮。

在.pro文件中添加:

INCLUDEPATH += "C:/Program Files/MySQL/MySQL Server 8.0/include"

DEPENDPATH += "C:/Program Files/MySQL/MySQL Server 8.0/include"

LIBS += "C:/Program Files/MySQL/MySQL Server 8.0/lib/libmysql.lib"

最重要。INCLUDEPATH和DEPENDPATH  的值是mysql的安装目录下的include。LIBS 的值是mysql的安装目录下的lib目录下的libmysql.lib文件。请根据自己的安装目录修改值

注释掉

#QMAKE_USE += mysql

最终如下:

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
include(../qsqldriverbase.pri)

INCLUDEPATH += "C:/Program Files/MySQL/MySQL Server 8.0/include"

DEPENDPATH += "C:/Program Files/MySQL/MySQL Server 8.0/include"

LIBS += "C:/Program Files/MySQL/MySQL Server 8.0/lib/libmysql.lib"

编译程序即可得到MySQL库文件。

2.拷贝库文件

打开QT同目录下的如下地址:D:\plugins\sqldrivers(我的QT安装在D盘,因此是在D盘中的plugins\sqldrivers)

其中qsqlmysql.dll和qsqlmysql.dll.debug就是我们需要的驱动文件,保存好即可。

将获取的两个文件 qsqlmysql.dll和qsqlmysql.dll.debug 复制到需要用的编译器对应文件夹下,例如,我要用的是mingw73_64编译器(与生成驱动打开mysql项目时使用的编译器相同,你不一定相同,但是位数要相同),则将上述两个文件复制到如下路径中D:\Qt\Qt5.14.2\5.14.2\mingw73_64\plugins\sqldrivers

进入mysql安装目录下的C:\Program Files\MySQL\MySQL Server 5.6\lib路径,将libmysql.lib和libmysql.dll放到qt安装bin目录下。

3.测试

#include 

qDebug() << "available drivers:";
	QStringList drivers = QSqlDatabase::drivers();
	foreach(QString driver, drivers)
		qDebug() << driver;

输出:

available drivers:
"QSQLITE"
"QMYSQL"
"QMYSQL3"
"QODBC"
"QODBC3"
"QPSQL"
"QPSQL7"

说明加载成功。

4.问题说明

若出现如下错误:

error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall 
QSqlDatabase::~QSqlDatabase(void)" (__imp_??1QSqlDatabase@@QAE@XZ),该符号在函数 _main 中被引用

解决办法:

VS"Qt"菜单-"Qt Project Settings"-"Qt Modules"-勾选SQL library

你可能感兴趣的:(qt,开发语言)