千家信息网

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

发表于:2025-01-25 作者:千家信息网编辑
千家信息网最后更新 2025年01月25日,Qt4.8.6编译mysql驱动-深入了解前些天的博文中讲述了Window+qt+vc++2017编译器这种组合下通过Qt标准库SQL接口连接mysql数据库情形,并成功解决了加载mysql驱动失败的
千家信息网最后更新 2025年01月25日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安全错误 数据库的锁怎样保障安全 南通南大街it软件开发培训 rpm下数据库是什么类型 南京 软件开发中心招聘 电信服务器怎么换成河南虚拟主机 服务器安全防护兼职团队 计算机网络技术运输层 电脑设置多个dns服务器 从哪些方面提高网络安全意识 怎样开展网络安全应急演练 上财网络技术中心待遇 网络安全扫描虚拟远程机 关系数据库中包含几个对象 云南软件开发国企 手机软件开发开发教程 数据库删除记录条 中国联通软件开发岗知乎 fifa3球员数据库 网络安全与基本概念及规划 巨人网络技术有限公司电话 上海楼控管理软件开发定制 淮北银行软件开发公司 高斯数据库版本查询 上海网络安全宣传周主会场 网络连接服务器不能用怎么办 优质软件开发公司哪家好 云南软件开发国企 it软件开发与高校合作 目前最广泛的网络安全是什么 公安网络安全监测系统 it服务器管理系统下载
0