用tdm编译64bit qt版本的mysql驱动
来源:互联网 发布:php url补全函数 编辑:程序博客网 时间:2024/05/29 19:13
官网只提供了32位的mingw编译的qt版本,经测试可以直接已经有mysql驱动,并可执行事务.
但是我是用了自己编译的tdm-gcc 64位版本的qt,就没这个福利了.
主要是根据下文提及步骤进行操作
http://1029975378-qq-com.iteye.com/blog/1310910
http://blog.sina.com.cn/s/blog_74a7e56e01017s64.html
===============第一步===============
第一步主要是生成def文件和准备mysql编译所需的头文件
去mysql官网下载zip安装包(64bit版本的,5.6.26是349.4M):
http://dev.mysql.com/downloads/mysql/
解压缩,从以下路径复制lib文件到E:\Coding\QT\SourceCode\mysql_svr\x64\lib\文件夹
mysql-5.6.26-winx64\lib\libmysql.lib
同时从解压缩文件中复制include文件到E:\Coding\QT\SourceCode\mysql_svr\x64\include\文件夹
接下来需要用reimp提取的libmysql.lib生成libmysql.def文件,reimp只有32bit的,但是也可以用来处理64bit的lib文件,
进入E:\Coding\QT\SourceCode\mysql_svr\x64\lib\文件夹,执行如下命令:
C:\Qt\Qt5.5.0\Tools\mingw492_32\bin\reimp -d libmysql.lib
*************************************************************************************
** 插一句
** 下面的mysql的源码中也可以找到找到libmysql.def文件,源码下载路径(5.6.26是39.6M):
** http://dev.mysql.com/downloads/mysql/
** 下载的是个zip文件,解压缩,路径如下
** mysql-5.6.26\libmysql\libmysql.def
** 经过我实际操作,用源码中的def文件生成的驱动不支持事务操作.
** 另外,由于最新的mysql都是用cmake配置工程,
** 所以用下文中提到方法可能可以直接利用qt编译mysql源码,但我未做尝试
** http://www.2cto.com/kf/201401/272101.html
*************************************************************************************
===============第二步===============
由第一步取得的libmysql.def生成libmysql.a文件
C:\TDM-GCC-64\bin\dlltool -k -d libmysql.def -l libmysql.a
然后进入以下qt源代码目录(以下操作的前提是,之前已经用configure命令配置tdm-gcc-64来编译整个qt代码,因为会涉及到许多其他配置文件)
E:\Coding\QT\SourceCode\qt-everywhere-opensource-src-5.5.0\qtbase\src\plugins\sqldrivers\mysql
修改其中的mysql.pro文件,在开头插入lib和include信息,修改后文件大概如下
***************************
TARGET = qsqlmysql
LIBS *= "E:\Coding\QT\SourceCode\mysql_svr\x64\lib\libmysql.a"
INCLUDEPATH *= "E:\Coding\QT\SourceCode\mysql_svr\x64\include"
SOURCES = main.cpp
OTHER_FILES += mysql.json
include(../../../sql/drivers/mysql/qsql_mysql.pri)
PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
include(../qsqldriverbase.pri)
***************************
用qmake由pro文件生成makefile,命令如下:
C:\Qt\Qt5.5.0\5.5\tdm510_shared\bin\qmake -o Makefile mysql.pro
生成qt的mysql驱动文件,命令如下:
C:\TDM-GCC-64\bin\mingw32-make
生成的文件(qsqlmysql.dll, qsqlmysqld.dll)在以下目录
E:\Coding\QT\SourceCode\qt-everywhere-opensource-src-5.5.0\qtbase\plugins\sqldrivers
===============第三步===============
复制生成的2个文件(qsqlmysql.dll, qsqlmysqld.dll)到对应的qt的以下路径
C:\Qt\Qt5.5.0\5.5\tdm510_shared\plugins\sqldrivers
===============第四步===============
最后编译运行自己程序仍然可能出现下面的错误
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QODBC3 QODBC QSQLITE QMYSQL QMYSQL3
需要用到第一步下载的mysql zip解压缩包的以下文件
mysql-5.6.26-winx64\lib\libmysql.dll
复制libmysql.dll到qt的bin文件夹下,我机器是下面路径
C:\Qt\Qt5.5.0\5.5\tdm510_shared\bin
OK,至此可以使用qt来连接mysql数据库了
===================================
- 用tdm编译64bit qt版本的mysql驱动
- tdm在win7 x64下静态编译 QT 5.5 64bit版本问题3
- tdm在win7 x64下静态编译 QT5.5 64bit版本问题1
- tdm在win7 x64下静态编译 QT5.5 64bit版本问题2
- 编译Qt的MySql驱动
- 编译Qt的MySql驱动
- 编译Qt的MySql驱动
- 编译Qt的MySql驱动
- 编译QT的mysql驱动
- 编译Qt的MySQL驱动
- Qt MySql 驱动的编译
- 用 qt opensource 版本 追加编译 oracle 的 oci 驱动
- qt mysql 驱动编译
- QT 编译mysql驱动
- Qt编译MySQL驱动
- Qt编译mysql驱动
- Qt mysql驱动编译
- QT编译MySQL驱动
- hust1342(流量有上下界的最小流)
- 用lazarus快速创建xml格式文件
- IOS 字符串删除某一个字符
- javascript面试题 之 js中this关键字的用法
- 天台山的读音
- 用tdm编译64bit qt版本的mysql驱动
- 分出奇偶数
- 百度笔试题
- LeetCode(46)Permutations
- Jsp 重定向、请求转发
- LintCode-在O(1)时间复杂度删除链表节点
- 对比Oracle和Mysql在锁机制上的类似和差异点
- 15年8月英语小结-新的开始
- 图像中的数据类型转换