Qt编译MySQL驱动
一、简述
- Qt默认没有MySQL驱动动态库,所以Qt开发时需要手动编译对应的MySQL驱动动态库。
- 编译过程需要本地已经安装MySQL,安装对应路径有MySQL相关头文件。
环境
- 系统:Window10 64bit
- MySQL:mysql-5.6.24-win32(MySQL链接:https://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.24-win32.zip)
- Qt:qt-opensource-windows-x86-5.12.12.exe
- Vs:vs2017企业版
二、动态编译Qt MySql驱动
- Qt安装时勾选Sources
- 解压mysql-5.6.24-win32安装包,然后通过响应指令启动MySQL
- 打开安装Qt的相应目录,例如:C:\Qt\Qt5.12.12\5.12.12\Src\qtbase\src\plugins\sqldrivers\mysql
- 通过txt编辑器编辑mysql.pro
本文福利,莬费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击莬费领取↓↓
编辑后结果:
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
win32:LIBS += -LD:/mysql-5.7.23-winx64/lib/ -llibmysql
INCLUDEPATH += D:/mysql-5.7.23-winx64/include
DEPENDPATH += D:/mysql-5.7.23-winx64/include
#上面的D:/mysql-5.7.23-winx64,是自己对应的MySQL目录
include(../qsqldriverbase.pri)
#需要添加最后这个include,否则提示:qtsqldrivers-config.pri no such file or directory
- 编译后驱动目录:C:\plugins\sqldrivers
- 将libmysql.dll(这个动态库在MySQL的lib目录下)下载后复制到Qt的安装目录中E:\Qt\Qt5.12\5.12.0\mingw73_32\bin
- 把生成目录C:\plugins\sqldrivers下面的动态库dll复制到“plugins\sqldrivers”目录(例如:C:\Qt\Qt5.12.12\5.12.12\msvc2017\plugins\sqldrivers)
测试验证:qt代码:
qDebug() << QSqlDatabase::drivers();
三、静态编译Qt MySql驱动
注意:静态编译Qt MySql驱动时,调用静态编译Qt环境的qmake。
第一步
源码包中目录:qtbase\src\plugins\sqldrivers\mysql
打开mysql.pro,对该文件进行修改:
TARGET = qsqlmysql
CONFIG += static
HEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp
OTHER_FILES += mysql.json
include(../qsqldriverbase.pri)
PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
INCLUDEPATH += D:/install/mysql-5.6.24-win32/mysql-5.6.24-win32/include
LIBS += -LD:/install/mysql-5.6.24-win32/mysql-5.6.24-win32/lib -llibmysql -lmysqlclient
#QMAKE_USE += mysql
目录说明:
本地MySql安装目录:D:/install/mysql-5.6.24-win32/mysql-5.6.24-win32/
第二步:
右键管理员运行cmd,运行命令(设置静态编译安装Qt目录):
set PATH=C:\Qt\Static_Qt\Qt5.12.9_x86\bin;%PATH%
切换工作目录到Mysql源码目录:qtbase\src\plugins\sqldrivers\mysql
运行命令:qmake
生成Makefile
第三步
管理员打开Vs工具中的:x86 Native Tools Command Prompt for VS 2017
运行命令:nmake
编译安装:nmake install
第四步
Vs+Qt运行环境调用Mysql库时,需要在main.cpp添加下面代码
#include <QtPlugin>
Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin);
Q_IMPORT_PLUGIN(QMYSQLDriverPlugin);
注意:生成程序会提示没有“libmysql.dll”,需要把Mysql安装目录:D:\install\mysql-5.6.24-win32\mysql-5.6.24-win32\lib的对应的库文件加入生成程序目录。
文章转自博客园(mehome):Qt编译MySQL驱动 - mehome - 博客园
本文福利,莬费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击莬费领取↓↓