Qt编译MySQL驱动

一、简述

  • Qt默认没有MySQL驱动动态库,所以Qt开发时需要手动编译对应的MySQL驱动动态库。
  • 编译过程需要本地已经安装MySQL,安装对应路径有MySQL相关头文件。

环境

  1. 系统:Window10 64bit
  2. MySQL:mysql-5.6.24-win32(MySQL链接:https://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.24-win32.zip)
  3. Qt:qt-opensource-windows-x86-5.12.12.exe
  4. Vs:vs2017企业版

二、动态编译Qt MySql驱动

  1. Qt安装时勾选Sources
  2. 解压mysql-5.6.24-win32安装包,然后通过响应指令启动MySQL
  3. 打开安装Qt的相应目录,例如:C:\Qt\Qt5.12.12\5.12.12\Src\qtbase\src\plugins\sqldrivers\mysql
  4. 通过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
  1. 编译后驱动目录:C:\plugins\sqldrivers
  2. 将libmysql.dll(这个动态库在MySQL的lib目录下)下载后复制到Qt的安装目录中E:\Qt\Qt5.12\5.12.0\mingw73_32\bin
  3. 把生成目录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模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击莬费领取↓↓