更多精彩内容 |
---|
👉文章导航 👈 |
👉QT数据库开发 👈 |
1、概述
Qt默认是不包含Mysql驱动的,需要自己编译;
Qt6编译MySql驱动的方式和Qt5有所不同;
本文主要讲解如何编译Qt6 Mysql驱动。
环境:
环境 | 版本 |
---|---|
系统 | windows11 |
Qt | 6.8 |
mysql | 8.4.3 |
编译器 | MSVC2022-64 |
2、下载Mysql
- MySQL :: Download MySQL Community Server
- 下载的mysql版本:MySQL或MariaDB(5.6及以上版本)
3、编译驱动
- 安装Qt6时勾选安装源码;
- 进入源码路径
D:\Qt\Qt6_8\6.8.0\Src\qtbase\src\plugins\sqldrivers
; - 使用Cmake打开
CMakeLists.txt
; - 设置编译器;
!
- 会出现如下错误
CMake Error at CMakeLists.txt:21 (find_package):
Could not find a package configuration file provided by "Qt6" (requested
version 6.8.0) with any of the following names:
Qt6Config.cmake
qt6-config.cmake
Add the installation prefix of "Qt6" to CMAKE_PREFIX_PATH or set "Qt6_DIR"
to a directory containing one of the above files. If "Qt6" provides a
separate development package or SDK, be sure it has been installed.
这是找不到Qt6的配置,需要增加
CMAKE_PREFIX_PATH
或者设置Qt6_DIR
;- 如果设置
CMAKE_PREFIX_PATH
就点击【Add entry】,添加选择的编译器路径D:\Qt\Qt6_8\6.8.0\msvc2022_64
;
- 如果设置
Qt6_DIR
则搜索Qt6_DIR
,然后设置如下所示可以找到Qt6Config.cmake
文件的路径;
- 如果设置
然后点击【Configure】就不会报错了;
然后勾选【Grouped】,打开【FEATURE】,勾选
mysql
项,点击【Configure】;
- 搜索【mysql】,勾选
FEATURE_sql_mysql
,分别设置下载的mysql头文件路径和lib/libmysql.lib路径;
- 点击【Configure】、【Generate】、【Open Project】;
- 使用vs打开后分别选择debug、relwithDebInfo编译,选中ALL_BUILD右键生成;
- 然后将
build\plugins\sqldrivers
路径下的文件复制到D:\Qt\Qt6_8\6.8.0\msvc2022_64\plugins\sqldrivers
路径下;
- 再将下载的
mysql-8.4.3-winx64\lib
文件夹下的libmysql.dll
文件复制到D:\Qt\Qt6_8\6.8.0\msvc2022_64\bin
文件夹下;
4、测试验证
创建一个Qt工程;
在pro文件添加
QT += sql
;然后使用
qDebug()<<QSqlDatabase::drivers();
打印支持的数据库驱动;注意选择的编译器是刚才配置好的编译器;
输入如下所示:
QList("QSQLITE", "QMIMER", "QMARIADB", "QMYSQL", "QODBC", "QPSQL")