Qt Creator编译my SQL 驱动

来源:互联网 发布:淘宝支付网站 编辑:程序博客网 时间:2024/06/18 18:43

发现这是一个在网上非常常见的问题,网上也有很多的说明文档,但是有的说明不够详细,有的按照说明无法编译成功,其实作者也参考过网上的多份说明编译成功过,但是事后就忘记了具体的过程。现在又遇到了相同的问题,又要重新查找帮助,因此作者决定这次彻底把它搞清楚,以节省自己和大家的时间。下面的方法仅供参考。

首先说明一下,Qt在windows有两种安装方法,一种是使用开源的安装方式,这种安装方式稍微复杂一些,具体的安装过程可以参看我的上一篇文章。第二种方法最为简单,直接用Qt官方提供的SDK包安装,一路只需要点击next即可了。相比较而说,用第一种方法安装虽然麻烦,但是对以后编译mysql驱动非常方便。第二种方法安装方便,但是编译数据库驱就稍嫌复杂,而且不能照搬网上的教程。由于作者比较懒,安装Qt都是使用的SDK包的方法,因此主要介绍这种情况下面将mysql驱动编译进QT的方法。

一。下载相关的软件

作者的Qt是Qt 4.7.4,在安装好Qt SDK的基础上,还需要下载qt-everywhere-opensource-src-4.7.4.zip,mingw-utils-0.3.tar和Mingw安装包。

当然最重要的是MySQL相关库,网上有些文章说需要安装MysqL,这个倒不一定,因为对于编译mysql插件而言,需要的这是libmysql.ib,以及libmysql.dll这个两个文件,没必要安装整个数据库。当然如果想做相应的数据库开发,最好还是安装一下。

综上而言,在安装好QT的基础上,还需要qt-everywhere-opensource-src-4.7.4.zip,mingw-utils-0.3.tar,以及MinGW中的dlltool这个文件(如果不想安装整个MinGW的话);MySQL方面需要libmysql.lib和libmysql.dll这两个文件。


下载上述文件,然后进行下一部的工作

二。转换库文件格式

这里主要用到了两个命令:

reimp -d libmysql.lib

dlltool -k -d libmysql.def -l libmysql.a

作用是将库文件有lib格式转化为.a格式,这个主要是在编译Mysql驱动插件时需要。这个库文件不要放在有空格的文件夹下面,如果当时安装了Mysql,且安装路径有空格,比如C:/Program Files/MySQL这种安装方式,也不用担心。在安装目录下(一般在libs文件夹下面)找出这个文件,复制到不带空格任意某一路径下,如D:/mysql/lib/(该可以自己创建,与是否安装mysql无关,只要有libmysql.lib文件即可),然后以绝对路径的方式运行上面两个命令也能成功。

三.编译Qt的mysql驱动

这是下载的qt-everywhere-opensource-src-4.7.4.zip便有用处了。我的Qt是安装在D:/QTSDK/目录下面的,在该首先将qt-everywhere-opensource-src-4.7.4.zip解压到D:/QTSDK/路径下面,如可以新建D:/QTSDK/4.7.4/ 路径,然后将源码包解压到4.7.4子目录下面。然后执行下列命令:

  1. cd d:\QTSDK\4.7.4\src\plugins\sqldrivers\mysql  
  2. qmake "CONFIG+=release" -o Makefile "INCLUDEPATH+=d:/mysql/include" "LIBS+=d:/mysql/lib/libmysql.a" mysql.pro  
  3. mingw32-make  
  4. qmake "CONFIG+=debug" -o Makefile "INCLUDEPATH+=d:/mysql/include" "LIBS+=d:/mysql/lib/libmysql.a" mysql.pro  
  5. mingw32-make  
这里有一点要注意,就是mysql的include和lib路径不能带有空格。如果一旦有空格的话,可以重新建立不带空格的路径。如笔者的MySQL安装在C:/Program Files/MySQL/路径下,因为在D盘新建了D:/mysql/lib和D:/mysql/include两个路径,将C:\Program Files\MySQL\MySQL Server 5.6\下的include文件夹内的全部文件拷贝到D:/mysql/include里面。D:/mysql/lib中的libmysql.a已经由第二部产生过了。如果第二步已经成功,而且注意做到了前面所说的include路径的问题,这一步也会成功的。
编译完成后,打开D:\QTSDK\4.7.4\src\plugins\sqldrivers\mysql目录,可以看到release和debug目录,分别从release和debug目录中拷贝以下4个文件到D:\QtSDK\Desktop\Qt\4.7.4\mingw\plugins\sqldrivers:
qsqlmysql4.dll
libqsqlmysql4.a
qsqlmysqld4.dll
libqsqlmysqld4.a
这里要注意,使用QTSDK安装,D:\QtSDK\Desktop\Qt\4.7.4\mingw\bin\qmake.exe才是qt的所在路径,不是网上一般所说的X:/QT/4.7.4/plugins/sqldrivers/.可以通过Qt Creator的选项菜单查看qmake的具体路径。
然后拷贝C:\Program Files\MySQL\MySQL Server 5.6\lib\libmysql.dll文件到D:\Qt\4.7.4\bin\下。
至此,mysql驱动便成功编译到Qt 4.7.4中。


0 0