Qt 编译MySQL数据库驱动——MSVC版本

1.环境:

MySQL:8.0(C:\Program Files\MySQL\MySQL Server 8.0)、VS2017(社区版,D:\Microsoft Visual Studio\2017)、Qt5.14.2,使用MSVC64位(D:\Qt\Qt5.14.2\5.14.2\msvc2017_64)

2.步骤

2.1 在环境变量PATH中添加D:\Qt\Qt5.14.2\5.14.2\msvc2017_64\bin,如果后面2.3步骤中报错

Project ERROR: Cannot run compiler 'cl'. Output:

再添加一个D:\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64注意这里是64位版本的,32位的路径要改一下,这里是要用到该路径下的cl.exe文件

2.2 修改D:\Qt\Qt5.14.2\5.14.2\Src\qtbase\src\plugins\sqldrivers\mysql下的mysql.pro文件的内容(Src文件夹是Qt安装时选择的组件“Source”的安装目录,如果没有,则需要给Qt添加组件),修改后内容如下

TARGET = qsqlmysql

HEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp

#QMAKE_USE += mysql

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

OTHER_FILES += mysql.json

PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
include(../qsqldriverbase.pri)

2.3.  打开 ,依次执行

cd D:\Qt\Qt5.14.2\5.14.2\Src\qtbase\src\plugins\sqldrivers\mysql
qmake "INCLUDEPATH+=C:/Program Files/MySQL/MySQL Server 8.0/include" "LIBS+=C:/Program Files/MySQL/MySQL Server 8.0/lib/libmysql.lib" mysql.pro

 这里可能会出现  无法找到文件.pri,can't read xxx等的问题,忽略。

再打开,依次执行

cd D:\Qt\Qt5.14.2\5.14.2\Src\qtbase\src\plugins\sqldrivers\mysql
qmake -- MYSQL_INCDIR="C:/Program Files/MySQL/MySQL Server 8.0/include"    MYSQL_LIBDIR="C:/Program Files/MySQL/MySQL Server 8.0/lib/libmysql.lib"
nmake

 此时会生成很多行代码,比如正在生成代码...正在创建库...,大概半分钟就ok了。

2.4.  在D:\Qt\Qt5.14.2\5.14.2\Src\qtbase\src\plugins\sqldrivers\plugins\sqldrivers文件下会生成几个文件

将qsqlmysql.dll、qsqlmysqld.dll拷贝D:\Qt\Qt5.14.2\5.14.2\msvc2017_64\plugins\sqldrivers目录下。将C:\Program Files\MySQL\MySQL Server 8.0\lib下的 libmysql.dll 拷贝到D:\Qt\Qt5.14.2\5.14.2\msvc2017_64\bin目录中

在Qt程序中添加如下代码,查看可用数据库驱动是否有MySQL,如果有,则控制台输出

 "QMYSQL"
"QMYSQL3"

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

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值