想用qt连接mysql数据库,但是在qt6.0版本之后都不自带驱动需要自己编译,过程中由于不熟悉cmake以及ninja,踩了一百个坑,简单记录一下。
csdn上也有很多大佬写得用cmake-gui来编译生成的, 但是比较繁琐,这里采用官方提供的方法,非常快捷。
首先新建一个文件夹用于存放编译后的文件,我这里新建位置如下:
D:\Qt\build
cd D:\Qt\build
cmake和ninja的安装就不说了,教程很多,推荐用git的方式,简单快捷。
安装完成后输入如下语句:
qt-cmake -G Ninja D:\Qt\6.4.2\Src\qtbase\src\plugins\sqldrivers -DMySQL_INCLUDE_DIR="G:\MySQL\mysql-8.0.32-winx64\include" -DMySQL_LIBRARY="G:\MySQL\mysql-8.0.32-winx64\lib\libmysql.lib" -DCMAKE_INSTALL_PREFIX="D:\Qt\6.4.2\mingw_64"
这句话总共有三部分需要注意:
include文件夹,此处为"G:\MySQL\mysql-8.0.32-winx64\include";最后一部分有博主说可有可无,不会生效,亲测属实。
特别注意!!!!!:mysql的文件路径中不能带空格!我的mysql本来放在program files文件夹里,导致后续无法找到文件路径一直报错,又不容易一眼看出来,非常搞人心态。
还有注意!!!!!:系统环境变量里面除了qt安装的编译器最好不要再有其他的mingw编译器路径,否则也会报错
再次输入ninja即可在build文件夹的子文件中中得到驱动文件,路径为:build\plugins\sqldrivers:
Ninja
将驱动文件放入对应文件夹,路径为:D:\Qt\6.4.2\mingw_64\plugins\sqldrivers

另外还需要将mysql\lib文件夹中的如下两个文件放入Qt\6.4.2\mingw_64\bin目录中:

将qt creator关闭并重启,即可生效!