温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2020-06-05 13:33:09 来源:网络 阅读:1181 作者:哈夫猿 栏目:软件技术

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、致谢

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


   



向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI