千家信息网

Qt4.8.6编译mysql驱动-深入了解

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,Qt4.8.6编译mysql驱动-深入了解前些天的博文中讲述了Window+qt+vc++2017编译器这种组合下通过Qt标准库SQL接口连接mysql数据库情形,并成功解决了加载mysql驱动失败的
千家信息网最后更新 2026年11月02日Qt4.8.6编译mysql驱动-深入了解

Qt4.8.6编译mysql驱动-深入了解

前些天的博文中讲述了Window+qt+vc++2017编译器这种组合下通过Qt标准库SQL接口连接mysql数据库情形,并成功解决了加载mysql驱动失败的问题。虽然有了点成绩但是依旧没有解决在Qt4.8.6+mingw这种组合下mysql数据库连接的问题。

1、软件环境

操作系统:windows10(64位)

Qt版本:4.8.6(mingw版本)

编译器:g++(4.8.2)

MySQL:5.7.22(64位、32位,)

g++ --version查询到的信息如下:

g++.exe (i686-posix-dwarf-rev3, Built by MinGW-W64 project) 4.8.2

qmake -version查询到信息如下:

QMake version 2.01a

Using Qt version 4.8.6 in C:\Qt\4.8.6\lib

2、历史遗留问题

1、Qt4中默认没有mysql驱动,需要手动编译;

2、编译mysql驱动需要提取mysql服务端程序内的include和lib,通过网络搜索可发现大多数的解决方案都需要使用lib/opt这个目录,但是mysql5.7中已经没有这个目录。

3、编译mysql驱动是通过构建%QTDIR%\src\plugins\sqldrivers\mysql\mysql.pro项目完成,编译完成后正常情况下会生成调试版和发布版的.a文件和dll文件。

4、历史处理方法是修改mysql.pro文件加入两条记录(include和lib已经提取出来了):

INCLUDEPATH+="C:\driver2\include"

LIBS+="C:\driver2\lib\libmysql.lib"

5、通过上述处理,在构建项目时,Qt Creator中会报出大量"undefined reference to xxxxxx"错误。至此,就无法继续进行下去。

6、百度N边,解决方案都是在重复问题4,近乎陷入死循环()。

3、N天后.........

..........@($*&(#@*7.......

4、神来之笔

偶然之间清理mysql.pro的项目的垃圾文件 ,赫然在Debug目录内存在一个qsqlmysl4.a文件,但是没有qsqlmysql4.dll这个文件,可以确认编译成功了一半,自己的配置有一部分是正确的。

重新构建项目,自习查看编译输出的内容,有一行打印"Makefile.Debug:77:recipe for target 'tdebug\qsqlmysql4.dll' failed"

果断百度了一下这个问题,最终的解决方案参考了qt编译mysql驱动程序错误的解决。问题根本原因是msyql安装的为64位,而mingw版本为32位,导致libmysql.dll文件不匹配。

5、致谢

感谢各位大神贡献的解决方案。




编译 文件 驱动 问题 方案 解决方案 项目 版本 目录 成功 信息 历史 数据 数据库 程序 编译器 错误 处理 查询 组合 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技股 互联网科技会 上海互联网科技有限公司 深圳互联网络科技有限公司 小马过河互联网科技 深圳齐家互联网科技 壕鑫互联网络科技 哈尔滨新华互联网科技 深圳卡尔迅互联网科技有限公司怎么样 互联网科技创新企业排名 金融科技与互联网金融相同和不同 昭通互联网科技选哪家 千方科技属于互联网企业吗 互联网媒体平台算高科技产业 中国科技创新与世界互联网大会 高科技互联网发展前景如何 烟台灵鸽互联网科技有限公司 福建互联网展示科技馆设计 普陀区互联网教育科技管理办法 互联网科技企业文化 蓝思科技飞鸽互联网 猪兼强互联网科技 智网互联网科技 苏州互联网科技贷款公司 重庆威客帮互联网科技 全球顶尖互联网科技公司 深圳市罗太互联网科技有限公司 国大互联网教育科技有限公司薪资 信承诺互联网科技有限公司 10位科技互联网大佬
0