• 748阅读
  • 2回复

[原创]求问大神,QT6.4.0插件中没有mysql工程文件,怎么编译mysql驱动? [复制链接]

上一主题 下一主题
离线zhuhao461261
 

只看楼主 倒序阅读 楼主  发表于: 2022-11-16
如题,本人新手,最近需要在windows系统下使用maria_db数据库,从网上看到很多的方法,都是在目录下面,有一个mysql工程文件,但是,我的目录下面,没有这个文件,无法参照网上的办法来编译mysql驱动,我尝试重装了QT编译软件,目录下面仍然没有这个文件。
只有这个几个文件,请大神帮着看下,万分感谢,谢谢!
离线liudianwu

只看该作者 1楼 发表于: 2022-11-16
1. 安装对应的数据库,安装后会有include头文件和lib链接库文件,这是基本的前提,编译数据库插件必须要有这两个东西。
2. 准备好数据库插件源码,比如qt-everywhere-src-5.14.2\qtbase\src\plugins\sqldrivers\mysql,可以在安装Qt的时候勾选src,或者后期直接官网重新下载源码解压出来。
3. 打开你要编译的数据库插件源码,比如mysql就打开mysql.pro,oracle就打开oci.pro。
4. 在pro中注释掉一行 #QMAKE_USE += mysql,如果是oci项目则是#QMAKE_USE += oci。
5. qsqldriverbase.pri文件中注释掉 #include($$shadowed($$PWD)/qtsqldrivers-config.pri)。

6. mysql.pro文件内容下面加上如下代码。
```cpp
path = C:/Qt/mysql-5.7.30-winx64
INCLUDEPATH += $$path/include
win32:LIBS += -L$$path/lib -llibmysql
```

7. oci.pro文件内容下面加上如下代码。
```cpp
path = C:/app/Administrator/product/11.2.0/client_1
INCLUDEPATH += $$path/oci/include
win32:LIBS += -L$$path/oci/lib/msvc -loci
```

8. 以上写法同时支持mingw和msvc,其他系统编译过程也是类似。编译完成后默认会在你当前源码所在盘符的根目录下,会出现plugins目录,里面sqldrivers目录下就是对应编译生成好的插件动态库。
9. 默认oracle的插件驱动代码是按照oracle12的函数写的,如果链接的是oracle11,则需要改动两行代码才能编译成功。打开qsql_oci.cpp文件大概在1559行代码左右,有个OCIBindByPos2函数改成OCIBindByPos,下面还有一行bindColumn.lengths改成(ub2*)bindColumn.lengths。
欢迎关注微信公众号:Qt实战/Qt入门和进阶(各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发) QQ:517216493  WX:feiyangqingyun  QQ群:751439350
离线20091001753

只看该作者 2楼 发表于: 2022-11-16
Qt 6 编译 MySQL 驱动 示范贴
http://www.qtcn.org/bbs/read-htm-tid-91447.html
(づ ̄ 3 ̄)づ
快速回复
限100 字节
 
上一个 下一个