Qt数据库驱动编译(MySQL)

news/2024/9/21 3:18:03/文章来源:https://www.cnblogs.com/proer-blog/p/18379823

Qt数据库驱动编译(MySQL)

哈喽!我是 Pro_er,一名热爱编程的小伙伴。在这里我会分享一些实用的开发技巧和经验心得。如果你也对编程充满热情,欢迎关注并一起交流学习!

第一步:安装所需文件

/** *  注意 Qt和MySql的位数要相同都为64或者32位*  Qt 安装的时候一定要安装源码(Sources)不然没办法编译*  安装就靠你自己啦,相信你可以的 :)*/
1. Qt下载地址:https://www.qt.io/zh-cn/product/development-tool
2. MySQL下载地址:https://dev.mysql.com/downloads/

第二步:当下载安装好之后就可以开始编译啦

1. 打开你安装的Qt文件目录然后在(D:\C++Software\QT\6.6.3\Src)文件下将qtbase文件夹拷贝到一个新的空文件夹下面。

注意:D:\C++Software\QT\6.6.3\Src路径是我自己的,你的按照你的安装目录的实际情况,空文件夹位置随意

拷贝到新的文件夹下如图

2. 将MySQL安装目录下的includelib文件夹拷贝到一个新的空文件夹下面

空文件夹位置随意

3. 打开新拷贝文件夹qtbase下的(\qtbase\src\plugins\sqldrivers)目录,找到CMakeLists.txt文件,然后使用Qt Creator打开txt文件

打开之后选择套件

4. 完成之后点击.cmake.conf在其中添加下面三行代码

/*** SET(FEATURE_sql_mysql ON)* SET(MySQL_INCLUDE_DIR "刚才复制的include文件夹的路径")* SET(MySQL_LIBRARY "刚才复制的lib文件夹的路径/libmysql.lib")
*/
SET(FEATURE_sql_mysql ON)
// 这里放的include的路径是你自己上面新拷贝的include的路径
SET(MySQL_INCLUDE_DIR "D:/QtMysqlCompile/mysqlFile/include")
// 这里放的lib的路径是你自己上面新拷贝的lib的路径
SET(MySQL_LIBRARY "D:/QtMysqlCompile/mysqlFile/lib/libmysql.lib")

5. 添加好之后保存,然后点击编译

这样即为编译成功

6. 编译成功之后将下面路径中的qsplmysql.debugqsqlmysql.dll文件进行复制

\qtbase\src\plugins\sqldrivers\build\Desktop_Qt_6_6_3_MinGW_64_bit-Debug\plugins\sqldrivers

7. 将复制到的文件粘贴到下面路径的sqldrivers目录下

D:\C++Software\QT\6.6.3\mingw_64\plugins\sqldrivers(注:使用自己软件的安装目录)

8. 将自己MySQL安装目录下的lib目录中的 libmysql.dlllibmysql.lib文件复制

9. 将复制的文件粘贴到下面路径的bin目录下

D:\C++Software\QT\6.6.3\mingw_64\bin(注:使用自己软件的安装目录)

恭喜你,你已经完成对MySQL驱动的编译和添加啦

第三步:就可以查看一下你的Qt是否有MySQL的驱动啦

1. 打开Qt Creator,新建一个控制台项目

2. 在.pro文件中添加字段

QT += sql

3. 编写代码查看驱动列表

在代码中一定要记得加入QSqlDatabase头文件哦

#include <QCoreApplication>
#include <QSqlDatabase>
#include <QDebug>int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);QStringList list = QSqlDatabase::drivers();foreach (QString item, list) {qDebug() << item;}return a.exec();
}

构建,运行就可以查看驱动列表了,可以看到已经加入了MYSQL的驱动

以上就是这次的所有内容啦,希望能对小伙伴有所帮助。如果小伙伴有任何想法或建议,欢迎留言讨论。感谢阅读,我们下次再见,byebye~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/787353.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

黑神话:悟空 通关感言

最近这几天一直再肝这个游戏, 今天终于通关了。 没有做全收集,全成就。只做了全图鉴(丢了一个无量蝠),和 第二个不带紧箍咒的结局。花了大概35小时,因为有挂机时间 有时候挂一晚上,与图片上的时间有所出入,问题不大。 整体的难度还可以,对我而言,卡我的只有虎先锋,小…

Truffle框架

这两天上网冲浪的时候,偶然发现一个介绍Truffle这个开发编程语言框架的一个影片:视频比较有意思的就是使用了Graal VM提供的Truffle语言框架区开发了一个编程语言,实现了一些基本的功能,比如四则运算和函数定义。个人看了看,对于想要了解编译器的入门者还是比较有启发的。…

带你了解 WebAssembly 的发展、应用与开发

一、WebAssembly 是什么?“WebAssembly(缩写为 Wasm)是一种基于堆栈式虚拟机的二进制指令集。Wasm 被设计成为一种编程语言的可移植编译目标,并且可以通过将其部署在 Web 平台上,以便为客户端及服务端应用程序提供服务”以上是 wasm 官网给出的一段解释。它运行在虚拟机中…

Nuxt3读取markdown文件

背景 想在Nuxt3中读取markdown以渲染文章。 分析 静态文件一般是放在public中的,但是官方文档中写明:而且,在SSR阶段(服务器渲染),nuxt无法通过fetch来访问public里的内容(虽然不推荐,但是客户端的js是可以通过fetch直接请求到文件的)。 过程 nuxt提供了一个content模…

Easysearch 性能测试方法概要

INFINI Easysearch INFINI Easysearch 是一个分布式的近实时搜索与分析引擎,核心引擎基于开源的 Apache Lucene。Easysearch 衍生自基于开源协议 Apache 2.0 的 Elasticsearch 7.10 版本,完善和支持更多的企业级功能,优化搜索业务场景,以保证更佳的数据探索与分析体验。 Ea…

简单的内存取证

记录一次内存取证;练习还是学到了很多东西!继续加油!工具: volatility2.6 + gimp 使用插件 mimikatz 看看账户和密码 python2 vol.py --plugins=/plugins/ -f baby_misc.raw --profile=Win7SP1x64 mimikatz​​ 然后再使用 filescan 插件扫描一下可疑的文件 python2 vol.py…

【复习失败-bp出问题了】【漏洞复现】DouPHP(CVE-2024-7917、代码分析xss)漏洞复现

https://mp.weixin.qq.com/s/YccEe85xFiZIZGOPQLABkA DouPHP(CVE-2024-7917、代码分析xss)漏洞复现 原创 LULU 红队蓝军 2024年08月23日 18:01 四川 漏洞介绍 漏洞:CVE-2024-7917 介绍:DouPHP 1.7_Release_20220822版本中存在一个远程代码执行(RCE)漏洞。拥有管理员权限的…

【简易学生管理系统】java版(内附完整源码)

源代码附在文章末尾注意:代码中定义了Student和User两个类,最初的登录操作对应User,之后才是对Student信息的增删改查。代码中对大部分用户键入都进行了校验,校验规则如下 用户名: 长度在3~15位 只能是数字和字母的组合不能都是数字 用户名已存在,无法注册手机号: 长度1…

[Datawhale AI 夏令营] Task1: 跑通YOLO方案baseline

环境配置厚德云 RTX 4090 image-gpu-pytorch_20240807运行 apt install git-lfs git lfs install git clone https://www.modelscope.cn/datasets/Datawhale/AI_Camp5_baseline_CV.git提交结果

如何快速对影像进行分幅?

GIS数据转换器的"分割转换"功能,可以根据用户设定的像素大小将一幅大影像分割成若干小尺寸的影像。下面是详细的使用步骤:方法/步骤1. 数据准备支持tif、img、bmp文件格式。 2. 软件下载与安装从GeoSaaS.COM官网下载并安装 GIS数据转换器,安装完成后桌面上出现”G…

dpdk解析报文协议-基于l2fwd

dpdk解析报文协议-基于l2fwd 0 前置条件 1、这里需要两台虚拟机,配置了相同的虚拟网络,可以通过tcpreplay在一台虚拟机回放报文,在另一台虚拟机通过tcpdump -i 网卡名 捕获到。具体配置可参考https://www.jb51.net/server/2946942fw.htm2、需要dpdk环境配置完成 3、大致了解…

引用类型和值类型(一)

引用类型和值类型(一) 关于引用类型和值类型的区别经常听到这样一个说法:“值类型分配在栈上,引用类型分配在堆上”。这个回答并不完全正确,或者说这不是值类型和应用类型真正的差别。官方文档给出的定义:引用类型的变量存储对其数据(对象)的引用,而值类型的变量直接包…