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
编辑后结果:
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
- 编译后驱动目录: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代码:
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的对应的库文件加入生成程序目录。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。