完美解决Qt6编译QMySQL驱动

安装QT源码Sources

  • 打开【Qt Maintenance Tool】,安装源码Sources,因为我用的QT版本是6.5.3,因此下载了这个版本的Sources。如下图

在这里插入图片描述


打开官网在线文档

  • 在源码目录下的对应mysql文件夹,如下图位置发现README文件,打开

在这里插入图片描述

  • 打开官网查找对应的文件:https://doc.qt.io/qt-6/sql-driver.html

    找到对应安装QMYSQL的位置,因为我是在windows上安装,找到了如下图位置

    $ mkdir build-sqldrivers
    $ cd build-sqldrivers
    $ qt-cmake -G Ninja <qt_installation_path>\Src\qtbase\src\plugins\sqldrivers -DCMAKE_INSTALL_PREFIX=<qt_installation_path>\<platform> -DMySQL_INCLUDE_DIR="C:\mysql-8.0.22-winx64\include" -DMySQL_LIBRARY="C:\mysql-8.0.22-winx64\lib\libmysql.lib"
    $ cmake --build .
    $ cmake --install .
    

在这里插入图片描述

  • 如果是Unix 或 macOS系统,则如下:
$ mkdir build-sqldrivers
$ cd build-sqldrivers
$ qt-cmake -G Ninja <qt_source_directory>/qtbase/src/plugins/sqldrivers -DCMAKE_INSTALL_PREFIX=<qt_installation_path>/<platform> -DMySQL_INCLUDE_DIR="/usr/local/mysql/include" -DMySQL_LIBRARY="/usr/local/mysql/lib/libmysqlclient.<so|dylib>"
$ cmake --build .
$ cmake --install .

在这里插入图片描述


编译QMYSQL驱动

根据上一步的官方文件的说明进行

1 确认官方文件指定的目录路径

需要确认命令里的1个脚本目录路径和4个目录路径

各位根据自己的qt版本和使用的编译器及数据库版本自行修改

qt-cmake -G Ninja <qt_installation_path>\Src\qtbase\src\plugins\sqldrivers -DCMAKE_INSTALL_PREFIX=<qt_installation_path>\<platform> -DMySQL_INCLUDE_DIR="C:\mysql-8.0.22-winx64\include" -DMySQL_LIBRARY="C:\mysql-8.0.22-winx64\lib\libmysql.lib"
  • 确认脚本qt-cmake目录:因为我用的是qt6.5.3版本且编译器是msvc20109_64,因此目录如下
D:\Qt\Qt6\6.5.3\msvc2019_64\bin\qt-cmake.bat

在这里插入图片描述

  • 确认<qt_installation_path>\Src\qtbase\src\plugins\sqldrivers:
D:\Qt\Qt6\6.5.3\Src\qtbase\src\plugins\sqldrivers

在这里插入图片描述

  • 确认<qt_installation_path><platform>:
D:\Qt\Qt6\6.5.3\msvc2019_64

在这里插入图片描述

  • 确认"C:\mysql-8.0.22-winx64\include":
"D:\Downloads\mysql-8.0.34-winx64\include"

在这里插入图片描述

  • 确认"C:\mysql-8.0.22-winx64\lib\libmysql.lib":
"D:\Downloads\mysql-8.0.34-winx64\lib\libmysql.lib"

在这里插入图片描述


2 新建文件夹

  • 在下图目录新建一个文件夹,我新建的文件夹叫【build】,我的目录是【D:\Qt\Qt6\6.5.3\Src\qtbase\src\plugins\sqldrivers\mysql】,并进入此文件夹

在这里插入图片描述


3 在新建的文件夹打开cmd

  • 先点击目录导航栏

在这里插入图片描述

  • 接着输入【cmd】然后按回车键,即可在此目录打开cmd.exe

在这里插入图片描述


4 根据上一步确认好的路径cmd敲如以下命令

  • 先敲以下命令然后回车
D:\Qt\Qt6\6.5.3\msvc2019_64\bin\qt-cmake.bat  D:\Qt\Qt6\6.5.3\Src\qtbase\src\plugins\sqldrivers -DCMAKE_INSTALL_PREFIX=D:\Qt\Qt6\6.5.3\msvc2019_64 -DMySQL_INCLUDE_DIR="D:\Downloads\mysql-8.0.34-winx64\include" -DMySQL_LIBRARY="D:\Downloads\mysql-8.0.34-winx64\lib\libmysql.lib"

在这里插入图片描述

  • 再敲入以下命令
cmake --build .

在这里插入图片描述

5 解决“/O2”和“/RTC1”命令行选项不兼容

Windows出现此问题则看,没有此问题或不是Windows略过

  • 打开vcproj工程,例如双击下图指示的文件

在这里插入图片描述

  • 在报错误的项目打开属性->配置熟悉->C/C+±>代码生成->基本运行时检查,设置值为【默认值】

    我这里有3个项目报错,因此分别设置了3次,其中一次如下图

在这里插入图片描述

  • 删掉【build】文件夹的所有文件

在这里插入图片描述

  • 在build文件夹目录输入以下命令
$ D:\Qt\Qt6\6.5.3\msvc2019_64\bin\qt-cmake.bat  D:\Qt\Qt6\6.5.3\Src\qtbase\src\plugins\sqldrivers -DCMAKE_INSTALL_PREFIX=D:\Qt\Qt6\6.5.3\msvc2019_64 -DMySQL_INCLUDE_DIR="D:\Downloads\mysql-8.0.34-winx64\include" -DMySQL_LIBRARY="D:\Downloads\mysql-8.0.34-winx64\lib\libmysql.lib"
$ cmake --build .

6 最后的命令

  • build目录输入以下命令

此条命令无需输入,因为上一步已经生成对应的动态库

cmake --install .

在这里插入图片描述

  • 此条命令我这里会失败,但是官方文件有写上了此条命令因此敲了,但不影响,大家无需输入此命令

编译好的库放到指定位置

  • 拷贝编译好的库:qsqlmysqld.dll

在这里插入图片描述

  • 放到QT对应的文件夹,我这里是:D:\Qt\Qt6\6.5.3\msvc2019_64\plugins\sqldrivers

在这里插入图片描述

  • 新建工程,打印即可输出QMYSQL

在这里插入图片描述

  • pro如下

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值