欢迎访问mehome的博客

Tomorrow is another day.
Fork me on GitHub

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

编辑后结果:

  1 TARGET = qsqlmysql
  2 
  3 HEADERS += $$PWD/qsql_mysql_p.h
  4 SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp
  5 
  6 #QMAKE_USE += mysql
  7 #需要注释,否则报错
  8 OTHER_FILES += mysql.json
  9 
 10 PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
 11 
 12 win32:LIBS += -LD:/mysql-5.7.23-winx64/lib/ -llibmysql
 13 INCLUDEPATH += D:/mysql-5.7.23-winx64/include
 14 DEPENDPATH += D:/mysql-5.7.23-winx64/include
 15 #上面的D:/mysql-5.7.23-winx64,是自己对应的MySQL目录
 16 
 17 include(../qsqldriverbase.pri)
 18 #需要添加最后这个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代码:

  1 
  2 qDebug() << QSqlDatabase::drivers();
  3 


三、静态编译Qt MySql驱动

注意:静态编译Qt MySql驱动时,调用静态编译Qt环境的qmake。

第一步

源码包中目录:qtbase\src\plugins\sqldrivers\mysql

打开mysql.pro,对该文件进行修改:

  1 TARGET = qsqlmysql
  2 
  3 CONFIG += static
  4 HEADERS += $$PWD/qsql_mysql_p.h
  5 SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp
  6 OTHER_FILES += mysql.json
  7 include(../qsqldriverbase.pri)
  8 
  9 PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
 10 
 11 INCLUDEPATH += D:/install/mysql-5.6.24-win32/mysql-5.6.24-win32/include
 12 LIBS += -LD:/install/mysql-5.6.24-win32/mysql-5.6.24-win32/lib -llibmysql -lmysqlclient
 13 
 14 
 15 #QMAKE_USE += mysql

目录说明:

本地MySql安装目录:D:/install/mysql-5.6.24-win32/mysql-5.6.24-win32/

第二步:

右键管理员运行cmd,运行命令(设置静态编译安装Qt目录):

  1 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添加下面代码

  1 #include <QtPlugin>
  2 Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin);
  3 Q_IMPORT_PLUGIN(QMYSQLDriverPlugin);


注意:生成程序会提示没有“libmysql.dll”,需要把Mysql安装目录:D:\install\mysql-5.6.24-win32\mysql-5.6.24-win32\lib的对应的库文件加入生成程序目录。

posted @ 2022-06-03 02:55  mehome  阅读(387)  评论(0编辑  收藏  举报