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驱动的更多相关文章

  1. PowerDesigner16.5 连64位MySQL,出错:SQLSTATE = IM014。原因及解决方案

  2. 在代码生成工具Database2Sharp中使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库,实现免安装Oracle客户端,兼容32位64位Oracle驱动

    由于我们开发的辅助工具Database2Sharp需要支持多种数据库,虽然我们一般使用SQLServer来开发应用较多,但是Oracle等其他数据库也是常用的数据库之一,因此也是支持使用Oracle等 ...

  3. vs2015编译boost 64位

    ---恢复内容开始--- step 1: 打开Developer Command Prompt for VS2015命令行窗口 step 2: 执行bootstrap.bat,产生bjam.exe s ...

  4. win8 64位 mysql安装 Configuration file my.ini error code -1

    问题如题,解决方法: 1.由于目录中纯在中文,所以导致代码错误.故而把目录设置成全英文的. 2.下载64位mysql安装,安装32位mysql也会出现此问题.

  5. 【VS开发】【C/C++开发】vs2015编译boost 64位

    vs2015编译boost 64位 ---恢复内容开始--- step 1: 打开Developer Command Prompt for VS2015命令行窗口 step 2: 执行bootstra ...

  6. InputFormat,OutputFormat,InputSplit,RecordRead(一些常见面试题),使用yum安装64位Mysql

    列举出hadoop常用的一些InputFormat InputFormat是用来对我们的输入数据进行格式化的.TextInputFormat是默认的. InputFormat有哪些类型? DBInpu ...

  7. 编译本地64位版本的hadoop-2.6.0

     官方提供的hadoop-2.x版本貌似都是32位的,在64位机子下使用可能会报错,最好使用官方提供的源码进行本地编译,编译成适合本地硬件环境的64位软件包. 关于native  Hadoop是使用J ...

  8. 关于Win7 64位 mysql 5.7下载安装问题

    1.从官网下载mysql: 网址:http://dev.mysql.com/downloads/mysql/ 这是我们要找的,win7 64位 点击下载: 出现如图所示,我们不必要登录注册,点击红线内 ...

  9. win10 64位 mysql安装过程出现status显示failed

    mysql安装过程出现status显示failed,如下图: 由于我的电脑是64位系统,这里需要升级一个插件,即32位 visual C++ 2013 and  visual C++ redistri ...

  10. windows编译openssl(64位)一游

    编译openssl,一套标准流程: (环境:  win10 64位os, vs2019) 需要的工具:perl     nasm   openssl源码包 1  安装perl 2  下载nasm,将n ...

随机推荐

  1. Adobe Photoshop cc2022 Mac中文破解版下载 支持intel/M1/M2/M3

    Adobe Photoshop cc2022 Mac版,支持intel.M1.M2.M3芯片,全系都能使用,最低系统需求:11.0以上.建议安装此版本或者ps2024版本. 下载地址放到最后,先来看安 ...

  2. Apache HTTP Server 使用

    安装 macOS: brew install apache2 Ubuntu: sudo apt install apache2 使用 配置文件路径: macOS: /opt/homebrew/etc/ ...

  3. rpm -Uvh *.rpm --nodeps --force

    rpm -Uvh *.rpm --nodeps --force 含义:-U:升级软件,若未软件尚未安装,则安装软件.-v:表示显示详细信息.-h:以"#"号显示安装进度.--for ...

  4. C++:使自定义类支持迭代器

    概述 在 C++ 中,链表迭代器是一种用来遍历链表(如 std::list)元素的工具.链表是一种数据结构,其中每个元素(节点)包含一个数据值和一个指向下一个节点的指针.链表迭代器允许以类似于数组的方 ...

  5. 算法学习-CDQ分治

    对于二维偏序,为普通的求逆序对,只需要先排序一遍,然后树状数组或双指针即可 而三位偏序甚至更高,则需要用 CDQ 分治,简单来说,就是将树状数组和双指针结合 操作步骤如下: 1.开始将数组按第一维排序 ...

  6. 初步认识uboot

    1. uboot下载地址 ftp://ftp.denx.de/pub/u-boot/

  7. Sql介绍 与 Sql基础查询

    Sql介绍 与 Sql基础查询 SQL SQL也称为结构化查询语言(Structure Query Language),是一种用于管理和操作关系型数据库的标准化计算机语言,SQL语言广泛应用于各种关系 ...

  8. 排查maven 冲突及解决方式

    Maven Maven 是一个以项目为中心的自动化构建工具,主要用于Java项目的管理和构建.它提供了一种统一的方式来描述项目的结构.依赖关系和构建过程,简化了项目的构建和管理. Maven 的主要特 ...

  9. Android应用启动全流程分析(源码深度剖析)

    目录 1.前言 2.大纲 3. Input触控事件处理流程 3.1 系统机制分析 3.2 结合Systrace分析 4. 应用进程的创建与启动 4.2 创建应用进程 4.2.1 AMS 发送socke ...

  10. v-if 为什么不能和 v-for 一起使用 ?

    当 Vue 处理指令时,v-for 比 v-if 具有更高的优先级,通过v-if 移动到容器元素,不会再重复遍历列表中的每个值.取而代之的是,我们只检查它一次,且不会在 v-if 为否的时候运算 v- ...