QT6.8 编译 MSVC2022-64位MySQL驱动
QT6.8没有编译MySql驱动,也没有.pro的项目文件,只能自己想办法编译,网上找了很多方法,终于找到了可以成功编译的方法,下面将我的编译过程详细记录如下:
[声明:本文为原创,未经允许,不得转载]
当前安装情况如下,安装了2个版本的QT:

QT6.8 msvc2022_64环境 D:\ProgramFiles\Qt\6.8.0\msvc2022_64\plugins\sqldrivers 是没有mysql驱动的,要将编译好的放在这里,QT开发时才可以正常运行,否则你的程序会提示:

下面我们开始编译:
一、前提条件
前提条件1:
MySQL 64位驱动,可到官网下mysql-connector-c-6.1.11-winx64.zip ,解压到某个文件夹,例如:
D:\Softwares\QT\MySql\mysql64

前提条件2:
CMake ,如果没安装可以使用Qt Maintenance Tool添加

安装完成后,你可以在Qt安装目录Tools目录下找到 CMake_64

前提条件3:
要安装 Visual Studio 2022 ,这里是用VS编译dll的
二、生成VS项目
看到上面的 cmake-gui.exe没有?我们用带界面应用生成VS工程

按以上选择目录,不要选错误,我们生成的是整个sqldrivers项目,并非只有 mysql,但我们生成后只用mysql
点击Configure弹出以下对话框 ,按照以下选择:

如果不能弹出对话框,请清除缓存 File—Delete Cache
点击Finish可能会出错

我们检查配置项目:
1).输入Qt ,看到Qt6_DIR,按以下配置目录

接着我们再点击 Configure
这时我们会看到中间的有很多自动配置了的选项

2).此时我们可以配置Mysql官网驱动目录了
按照以下 Search中输入 mysql,下方红色部分配置如下:

接着我们再点击 Configure

其它错误我们可以不用理会
接着我们再点击 generate

此时,build目录下就生成的vs的项目文件了

三、编译生成QT插件数据库驱动
看到上方QSQLiteDriverPlugins.sln文件,我们用 Visual Studio 2022打开

我们选择这个项目(QMYSQLDriverPlugin),点击右键—属性,将以下的配置检查修改一下(因为有可能编译出错)


然后在上方切换不同的方式去编译QMYSQLDriverPlugin项目

编译后我们在Build目录下 plugins\sqldrivers下可以看到生成的库文件

我们将上方选中的文件 复制到D:\ProgramFiles\Qt\6.8.0\msvc2022_64\plugins\sqldrivers 下
最后将D:\Softwares\QT\MySql\mysql64\lib\ libmysql.dll 复制到 D:\ProgramFiles\Qt\6.8.0\msvc2022_64\bin
大功告成!
四、后记
测试你的程序,要重启QT
我们对比一下前后应用程序的提示:
【前】

【后】

可用的驱动己经增加了2个 QMARIADB,QMYSQL
应用程序己可正常运行了!
QT6.8 编译 MSVC2022-64位MySQL驱动的更多相关文章
- PowerDesigner16.5 连64位MySQL,出错:SQLSTATE = IM014。原因及解决方案
- 在代码生成工具Database2Sharp中使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库,实现免安装Oracle客户端,兼容32位64位Oracle驱动
由于我们开发的辅助工具Database2Sharp需要支持多种数据库,虽然我们一般使用SQLServer来开发应用较多,但是Oracle等其他数据库也是常用的数据库之一,因此也是支持使用Oracle等 ...
- vs2015编译boost 64位
---恢复内容开始--- step 1: 打开Developer Command Prompt for VS2015命令行窗口 step 2: 执行bootstrap.bat,产生bjam.exe s ...
- win8 64位 mysql安装 Configuration file my.ini error code -1
问题如题,解决方法: 1.由于目录中纯在中文,所以导致代码错误.故而把目录设置成全英文的. 2.下载64位mysql安装,安装32位mysql也会出现此问题.
- 【VS开发】【C/C++开发】vs2015编译boost 64位
vs2015编译boost 64位 ---恢复内容开始--- step 1: 打开Developer Command Prompt for VS2015命令行窗口 step 2: 执行bootstra ...
- InputFormat,OutputFormat,InputSplit,RecordRead(一些常见面试题),使用yum安装64位Mysql
列举出hadoop常用的一些InputFormat InputFormat是用来对我们的输入数据进行格式化的.TextInputFormat是默认的. InputFormat有哪些类型? DBInpu ...
- 编译本地64位版本的hadoop-2.6.0
官方提供的hadoop-2.x版本貌似都是32位的,在64位机子下使用可能会报错,最好使用官方提供的源码进行本地编译,编译成适合本地硬件环境的64位软件包. 关于native Hadoop是使用J ...
- 关于Win7 64位 mysql 5.7下载安装问题
1.从官网下载mysql: 网址:http://dev.mysql.com/downloads/mysql/ 这是我们要找的,win7 64位 点击下载: 出现如图所示,我们不必要登录注册,点击红线内 ...
- win10 64位 mysql安装过程出现status显示failed
mysql安装过程出现status显示failed,如下图: 由于我的电脑是64位系统,这里需要升级一个插件,即32位 visual C++ 2013 and visual C++ redistri ...
- windows编译openssl(64位)一游
编译openssl,一套标准流程: (环境: win10 64位os, vs2019) 需要的工具:perl nasm openssl源码包 1 安装perl 2 下载nasm,将n ...
随机推荐
- 【YashanDB知识库】kettle从DM8的number类型同步到YashanDB的varchar类型,存入是科学计数法形式的数据
[标题]kettle从DM8的number类型同步到YashanDB的varchar类型,存入是科学计数法形式的数据 [问题分类]数据导入导出 [关键字]数据同步,number类型,科学计数法 [问题 ...
- Failed to convert value of type 'java.lang.String' to required type
DEBUG 微信小程序Java后台 Failed to convert value of type 'java.lang.String' to required type 产生这种条件的原因一般是使用 ...
- anaconda-navigator 卡在 loading applications
其实上学期开学就已经这样了,我又不用,再者我上课对这些依赖不大,就没管. 这几天想彻底搞定吧.现状了opencv,最后搞了半天,还是通过安装相应版本的.whl文件搞定了,无法conda install ...
- 小tips:怎样实现简单的前端hash与history路由方式?
前端路由实现方式,主要有两种,分别是history和hash模式. hash模式 不同路由对应的hash是不一样的,如何能够监听到URL中关于hash部分发生的变化?浏览器已经暴露给我们一个现成的方法 ...
- 【合合TextIn】深度解析智能文档处理技术与应用
一.智能文档处理介绍 智能文档处理(Intelligent Document Processing, IDP)是利用人工智能(AI).机器学习(ML).计算机视觉(CV).自然语言处理(NLP)等技术 ...
- Azure 入门系列 (外传 小知识)
数据中心地理结构 Azure 数据中心有很多,这我们知道, 但是我们还需要知道它的结构, 不然在做 Backup, Recovery Disaster 的时候会卡卡. 参考: Region, Avai ...
- find基础命令与提权教程
关于我 博客主页:https://mp.weixin.qq.com/mp/homepage?__biz=Mzg2Nzk0NjA4Mg==&hid=2&sn=54cc29945318b7 ...
- llama.cpp推理流程和常用函数介绍
llama.cpp是一个高性能的CPU/GPU大语言模型推理框架,适用于消费级设备或边缘设备.开发者可以通过工具将各类开源大语言模型转换并量化成gguf格式的文件,然后通过llama.cpp实现本地推 ...
- Redis数据库常见命令
Redis数据库常见命令 Linux启动Redis # 启动服务 redis-server # 开启客户端 redis-cli # 关闭redis服务 shutdown #查看服务是否运行 ping ...
- 怎么根据token的有⽆去控制路由的跳转?进度条跳转 - 白名单是否有token - 单独封装文件permission .js
vue这边的路由⾃带了路由前置守卫,我们可以在前置守卫⾥拿到token数据,然后根据需求做分⽀判 断,要是token存在就使⽤next⽅法正常放⾏跳转,否则可以强制跳回到登录,让⽤户去获取token ...