windows平台qt64bit mysql驱动为例,数据库驱动模块的编译

qt64bit mysql驱动为例,数据库驱动模块的编译

环境

  • qt版本5.14.0。

  • 具体步骤以qt文档为主,网络博客参考为辅。

  • 编译器的位数和mysql的位数必须一致,因为mysql源码采用两种位数来写,所以为演示64位,在此采用编译器为mingw64,mysql源码为mysql-connector-c-6.1.11-win64.zip;

  • mysql源码下载地址MySQL :: Download MySQL Connector/C (Archived Versions)。源码必须使用connector c,不能是c++等,这些由qt助手文档得来。但我也尝试过了mysql8安装下来的server,c++等,可能是位数问题,皆未成功。不过应该只要位数解决,也能成功。只要含有所需文件:

  • <MySQL dir>/lib/libmysql.lib
    <MySQL dir>/lib/libmysql.dll
    <MySQL dir>/include/mysql.h
    

部分源码文件修改

  • Qt\Qt5.14.1\5.14.1\Src\qtbase\src\plugins\sqldrivers中的qsqldriverbase.pri

  • QT  = core core-private sql-private
    
    # For QMAKE_USE in the parent projects.
    #include($$shadowed($$PWD)/qtsqldrivers-config.pri)//删除这个
    include(./configure.pri)#增加这个
    PLUGIN_TYPE = sqldrivers
    load(qt_plugin)
    
    DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII
    
  • Qt\Qt5.14.1\5.14.1\Src\qtbase\src\plugins\sqldrivers\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)
    
    #64bit,此位置是我解压下载的mysql64 zip文件之后所得,libs必须将文件带上,不能只写成目录。
    INCLUDEPATH += "D:\MySQL\mysql-connector-c-6.1.10-win64\include"
    LIBS += "D:\MySQL\mysql-connector-c-6.1.10-win64\lib\libmysql.lib"
    
    DESTDIR = ../mysql/mysqlDll
    

命令执行

打开“VS 2017的开发人员命令提示符“的cmd,里面配置有这个编译器的环境,可以直接用nmake,然后步骤如下:

cd D:\Applications\Qt\5.14.1\Src\qtbase\src\plugins\sqldrivers\mysql
 
qmake -- MYSQL_INCDIR="D:\MySQL\mysql-connector-c-6.1.10-win32/include" MYSQL_LIBDIR="D:\MySQL\mysql-connector-c-6.1.10-win32/lib/libmysql.lib"

mingw64-make
mingw64-make install

最后将D:\MySQL\mysql-connector-c-6.1.10-win64/lib/libmysql.dll文件拷贝到D:\Applications\qt_new\5.14.1\mingw73_64\bin目录下即完成。

所见问题及参考

参考博客:qt连接mysql报错:QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7 - №点缀 - 博客园 (cnblogs.com)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值