Qt5.15编译Mysql的dll过程

本文介绍如何在64位环境下配置Qt以使用MySQL数据库,包括修改mysql.pro文件,设置路径和库文件,以及编译生成的动态链接库的部署。
  1. 编译主要错误是因为mysql是64位,所以要用64位编译才行
  2. 打开C:\Qt\5.15.2\Src\qtbase\src\plugins\sqldrivers\mysql下的mysql.pro

修改pro文件

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

#$$quote是为了解决路径中空格

win32:LIBS += -L$$quote("C:/Program Files/MySQL/MySQL Server 5.7/lib/") -llibmysql

INCLUDEPATH += $$quote("C:/Program Files/MySQL/MySQL Server 5.7/include")

DEPENDPATH += $$quote("C:/Program Files/MySQL/MySQL Server 5.7/include")

include(../qsqldriverbase.pri)

DESTDIR  = ../mysql/lib/

  1. 修改qsqldriverbase.pri

QT  = core core-private sql-private

# For QMAKE_USE in the parent projects.

include($$shadowed($$PWD)/configure.pri)

PLUGIN_TYPE = sqldrivers

load(qt_plugin)

DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII

  1. 将编译生成的qsqlmysql.dll和qsqlmysqld.dll拷贝到Qt的安装目录下C:\Qt\5.15.2\mingw81_64\plugins\sqldrivers
  2. 将C:\Program Files\MySQL\MySQL Server 5.7\lib下的libmysql.lib,libmysql.dll拷贝到C:\Qt\5.15.2\mingw81_64\bin

  1. 编译32位库比较类似,下载32位数据库程序解压D:\mysql-5.7.29-win32
  2. 打开C:\Qt\5.15.2\Src\qtbase\src\plugins\sqldrivers\mysql下的mysql.pro

修改pro文件

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.29-win32/lib -llibmysql

INCLUDEPATH += D:\mysql-5.7.29-win32\include

DEPENDPATH += D:\mysql-5.7.29-win32\include

include(../qsqldriverbase.pri)

DESTDIR  = ../mysql/lib/

  1. 将编译生成的qsqlmysql.dll和qsqlmysqld.dll拷贝到Qt的安装目录下C:\Qt\5.15.2\mingw81_32\plugins\sqldrivers
  2. 将C:\Program Files\MySQL\MySQL Server 5.7\lib下的libmysql.lib,libmysql.dll拷贝到C:\Qt\5.15.2\mingw81_32\bin
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值