Qt5.12.4编译MySQL驱动备忘

Qt5.12.4编译MySQL驱动备忘

背景

Qt5.12.4发布,本想不去理会,但changelog中提到 QFile::copy() 的一处bug,恰是当前一个小项目上用到的,虽然也可以想办法规避,但犹豫了一下,还是跟风安装了新版,安装完成后,才发现Qt5.12.4中并没有默认自带 qsqlmysql.dll ,这可叫我头大了,Qt5.12.3时期尝试过自己编译这个驱动,然而并没有成功。现在想要用它,就不得不搞了也…

源码下载

先把源码下载位置留出来:

qtbase-everywhere-src-5.12.4.tar.xz

第一次尝试

以前编译mysql驱动的时候,都是直接从源码中将sqldrivers路径解压出来用

.\qtbase-everywhere-src-5.12.4\src\plugins\sqldrivers

这次还是先这样试着,各种错误就不提了,反正失败了。记得上次Qt5.12.3也是卡在这里。

第二次尝试

将上述源码完整解压到某路径,比如

D:\qtbase-everywhere-src-5.12.4

进入sqldrivers路径

D:\qtbase-everywhere-src-5.12.4\src\plugins\sqldrivers

这里需要做两处编辑

  1. 修改.\qsqldriverbase.rpi
QT  = core core-private sql-private

# For QMAKE_USE in the parent projects.
#include($$shadowed($$PWD)/qtsqldrivers-config.pri)
include($$shadowed($$PWD)/configure.pri)

PLUGIN_TYPE = sqldrivers
load(qt_plugin)

DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII
  1. 修改.\mysql\mysql.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
include(../qsqldriverbase.pri)

win32:LIBS += -LD:/Programs/MySQL/mysql-5.7.26-win32/lib -llibmysql
INCLUDEPATH +=  D:/Programs/MySQL/mysql-5.7.26-win32/include
DEPENDPATH +=   D:/Programs/MySQL/mysql-5.7.26-win32/include

注释掉 QMAKE_USE += mysql 并且新增mysql库的路径。

  1. 启动命令行

Qt 5.12.4 (MinGW 7.3.0 32-bit)

这里编译的是32位版本,因此要启动32位对应的命令行,前面mysql.pro中的库路径也要是32位mysql的库路径。如果是编译64位版本,启动对应的命令行,修改mysql.pro中的库路径,做好对应。
在命令行中依次执行:

cd D:\qtbase-everywhere-src-5.12.4\src\plugins\sqldrivers\mysql
qmake
mingw32-make -j8
mingw32-make install

至此结束

备注

使用的MySQL版本是5.7.26,发现其32位版本的libmysql.dll还要依赖32位的msvcr120.dll和msvcp120.dll。如果后期打包的程序中不包含这两个dll或者系统中未注册这两个dll,都可能会导致出现:

QMYSQL driver not loaded

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Qt 5.12.4是一个跨平台的C++应用程序开发框架,可以用于构建图形用户界面、网络应用程序和嵌入式设备的软件。 Mingw32是一个在Windows操作系统上使用GCC编译器的开发工具集,它提供了一套完整的开发环境,包括编译器、链接器和调试器等工具。 在使用Qt 5.12.4和Mingw32进行开发时,可以使用Qt提供的Mingw版本编译和链接程序。Mingw版本Qt包括了针对Mingw编译器的预编译头文件和库文件,使得开发者可以直接在Mingw环境下开发和调试Qt应用程序。 安装Qt 5.12.4的Mingw版本时,需要首先下载并安装Mingw编译器和工具集。然后,下载并安装Qt的Mingw版本,可以选择在线安装或离线安装两种方式。 安装完成后,需要配置Qt Creator或其他IDE以使用Mingw编译器。在Qt Creator中,可以通过设置Mingw编译套件的路径和版本号来启用Mingw编译器。 在开发过程中,可以使用Qt Creator提供的图形界面工具来创建和设计界面,使用C++编写业务逻辑。编译和运行程序时,选择Mingw编译器,并指定目标平台为Windows操作系统。 使用Qt和Mingw开发驱动程序时,需要了解相应的硬件接口和驱动接口规范。根据硬件的特点和需求,编写相应的驱动程序代码,并将其与Qt应用程序进行集成。 通过使用Qt 5.12.4和Mingw32进行驱动程序开发,开发者可以充分利用Qt的跨平台特性和Mingw的开发工具集,实现高效、可靠的驱动程序。同时,还可以利用Qt提供的丰富的图形用户界面和网络功能,为驱动程序提供更好的用户体验和扩展性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值