CMake+ninja编译qt所需的mysql驱动文件
想用qt连接mysql数据库,但是在qt6.0版本之后都不自带驱动需要自己编译,过程中由于不熟悉cmake以及ninja,踩了一百个坑,简单记录一下。
写在前面
csdn上也有很多大佬写得用cmake-gui来编译生成的, 但是比较繁琐,这里采用官方提供的方法,非常快捷。
步骤
新建文件夹
首先新建一个文件夹用于存放编译后的文件,我这里新建位置如下:
D:\Qt\build
命令行进入
cd D:\Qt\build
利用cmake和ninja来编译
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"
这句话总共有三部分需要注意:
- 紧跟在Ninja 后的为需要编译的路径,此处为D:\Qt\6.4.2\Src\qtbase\src\plugins\sqldrivers;
- -DMySQL_INCLUDE_DIR= 后跟mysql目录下的
include
文件夹,此处为"G:\MySQL\mysql-8.0.32-winx64\include"; - -DMySQL_LIBRARY=后跟mysql文件夹下lib文件夹中的libmysql.lib文件,此处具体路径为:“G:\MySQL\mysql-8.0.32-winx64\lib\libmysql.lib”
最后一部分有博主说可有可无,不会生效,亲测属实。
特别注意!!!!!: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关闭并重启,即可生效!