windows编译Qt5.15 MySql驱动

news/2024/7/7 1:08:16

本文主要简要记录下如何在Windows上编译Qt MySql驱动。细支末节难以言表,需要一定经验。

Qt源码中没有集成mysql的开发库文件,因为mysql所用开源协议与Qt不兼容。
需要从mysql官网下载mysql的安装包或者压缩包,mysql中自带了最新的C开发库。
MySQL :: Download MySQL Community Server

如果一个模块依赖的库和头文件不做标准目录中,Qt configure不能自动检测到,需要我们告诉它这些路径,可以使用*_INCDIR=, *_LIBDIR=, 或 *_PREFIX= 这些命令行选项来指定。 要想后来添加其他驱动而不至于重新编译Qt,可以进入Qt数据库驱动源码目录 qtbase/src/plugins/sqldrivers中独立配置,编译并安装。

本文就以安装mysql驱动为例:

cd $QTDIR/qtbase/src/plugins/sqldrivers # $QTDIR 源码的根目录
qmake -- MYSQL_PREFIX="D:/mysql-8.0.24-winx64/"   # 替换成你的MySql安装目录 
# 这里也可以使用  qmake -- MYSQL_INCDIR="D:/mysql-8.0.24-winx64/include" MYSQL_LIBDIR="D:/mysql-8.0.24-winx64/lib"

如果成功,mysql将检测通过,如下所示:

Info: creating stash file D:\Qt\qt-everywhere-src-5.15.2\qtbase\src\plugins\sqldrivers\.qmake.stash

Running configuration tests...
Checking for DB2 (IBM)... no
Checking for InterBase... no
Checking for MySQL... yes
Checking for OCI (Oracle)... no
Checking for ODBC... yes
Checking for PostgreSQL... no
Checking for SQLite (version 2)... no
Checking for TDS (Sybase)... no
Done running configuration tests.

Configure summary:

Qt Sql Drivers:
  DB2 (IBM) .............................. no
  InterBase .............................. no
  MySql .................................. yes
  OCI (Oracle) ........................... no
  ODBC ................................... yes
  PostgreSQL ............................. no
  SQLite2 ................................ no
  SQLite ................................. yes
    Using system provided SQLite ......... no
  TDS (Sybase) ........................... no

编译:

mingw32-make -j8

安装:

mingw32-make install

驱动插件将安装到D:\Qt\Qt5.15.2\plugins\sqldrivers 目录中!

可使用如下代码测试支持的数据库驱动:

qDebug() << QSqlDatabase::drivers();

编译安装mysql前:

("QSQLITE", "QODBC", "QODBC3", "QPSQL", "QPSQL7")

编译安装mysql后:

("QSQLITE", "QMARIADB", "QMYSQL", "QMYSQL3", "QODBC", "QODBC3", "QPSQL", "QPSQL7")

http://www.niftyadmin.cn/n/3296575.html

相关文章

HDU 1102 Constructing Roads HDU1863 畅通工程

这两个题都是畅通工程的。杭电上真是各种畅通工程。 1102 题目链接http://acm.hdu.edu.cn/showproblem.php?pid1102 还是用的Prim算法。 View Code 1 #include<stdio.h>2 #include<string.h>3 #define N 10000004 int map[110][110],lowcost[110];5 int visi…

java 需要转义的一些特殊符号。

那么这里在列上一些转义字符 \\ 反斜杠 \t 间隔 (\u0009) \n 换行 (\u000A) \r 回车 (\u000D) \d 数字 等价于 [0-9] \D 非数字 等价于 [^0-9] \s 空白符号 [\t\n\x0B\f\r] \S 非空白符号 [^\t\n\x0B\f\r] \w 单独字符 [a-zA-Z_0-9] \W 非单独字符 [^a-zA-Z_0-9] \f 换页符 \…

书------网络工具书

为了更好能把工作完成与把工作做好。只多看网络方面的书。有些书&#xff0c;并非全有用得着的地方&#xff0c;只要其中一部分对工作有帮助&#xff0c;也得把它买下来。所以在做网管其间&#xff0c;网络方面的书也不少。转载于:https://www.cnblogs.com/insus/archive/2009/…

Ubuntu20.04上安装Qt ODBC和MySql

本文记录下如何在Ubuntu上安装ODBC&#xff0c;以及Qt的ODBC插件&#xff0c;MySql插件&#xff0c;最后实现通过Qt ODBC去连接MySql。 主要记录一些重要步骤&#xff0c;需要一些基础了解&#xff0c;细支末节&#xff0c;难以言表&#xff01; 所用环境&#xff1a;ubuntu 20…

工作第7天

判断子页面是否列表显示 根据nums 而nums 则根据list里的index.php 的定义来判断 <!----------------园区要闻---------------------> <div class"fl" id"content_center"> <img src"../images/yqyw.jpg"><a href"ht…

Windows 7镜像坎坷之路 - 都是Daemon Tools惹得祸

最近Windows 7 RTM已经在MSDN等订阅上发布了&#xff0c;其实泄漏版也很多&#xff0c;但是始终没有序列号&#xff0c;正值获得序列号的好日子&#xff0c;吴慧锋也兴高采烈的做一个Windows 7系统镜像&#xff0c;一边日后重装系统更加方便。多话不说&#xff0c;开始动手&…

std::tuple大总结

tuple的那些事元组的使用典型使用创建和初始化元组的访问和修改元组的元素个数元组的解包元组的元素类型获取元组的拼接元组的遍历C11引入了一个新的较实用的模板类型&#xff0c;std::tuple&#xff0c;也即是元组。元组是一个固定大小的不同类型&#xff08;异质&#xff0c;…

iphone和mac互传文件_华为手机也能连苹果电脑:一键文件互传、备份和恢复

大家都知道&#xff0c;苹果生态封闭&#xff0c;自成一派。那如果使用其它品牌的手机&#xff0c;能不能实现和Mac电脑互传文件、备份和恢复呢&#xff1f;今日&#xff0c;花粉俱乐部分享了一则教程&#xff0c;使用华为手机助手就能轻松实现上述操作。据介绍&#xff0c;华为…