Qt之编译MySQL数据库驱动(MSVC)

Qt之编译MySQL数据库驱动(MSVC)

  (2013-12-13 20:24:46)
标签: 

qt

 

mysql

 

qmysql

 

qt编译mysql

 

qt之msvc编译mysql

分类: Qt
    在Qt之操作数据库(SQLite)中已经介绍了关于Qt如何操作数据库的问题。由于授权的许可限制,Qt的开源版本无法提供所有的驱动程序,当配置Qt时,即可以选择Qt本身包含的SQL驱动程序。

    注:Qt5.2以前的版本,提供的数据库包括:ODBC、SQLite、PSQL,其它没有提供的需要自己进行编译。但从Qt5.2开始,已经包含MySQL,不需要手动编译。但是为了说明如何使用MySQL,这里将各个版本的用法都进行对比、说明。
 
Qt5.2版本
    安装Qt5.2版本的,可以在安装目录下,pluins\sqldrivers下进行查看,面包含有MySQL驱动。
 

 
 
Qt5.2之前的版本
    针对5.2之前的版本MySQL需要自行编译,这里就以5.2为例(其它版本同理)。
    关于数据库驱动的介绍以及如何编译可以参考Qt助手,里面有一节:SQL Database Drivers。
 

  
    下面讲述关于如何利用MSVC编译MySQL。
 
环境:VS2010 + Qt5.2
 
    其实版本问题没有什么太大影响,因为编译本来就大同小异。。。
 
一、下载Qt安装包与Qt插件
  • qt-windows-opensource-5.2.0-msvc2010_opengl-x86-offline.exe
  • qt-vs-addin-1.2.2-opensource.exe
    下载地址可参考:VS集成Qt环境搭建
    注意:安装opensource的时候记得选择源码,否则 编译的时候还得重新下载。
 
二、下载MySQL
(1)进入主页,选择:Downloads(GA)
    如下:
 
(2)转到页面最下面,MySQL Community Edition (GPL),选择:Download from MySQL Developer Zone >>
    如下:
 


(3)转到页面右上角,选择:New Releases对应的版本(这里我选择的是5.6)
    如下:
 
 
(4)转到页面最下面,Other Downloads,选择对应的版本(这里我选择的是32位)
    如下:
 
 
    下载完成之后,进行解压,拷贝到一个指定的路径(我选择的是:D:\mysql-5.6.15-win32)。
 
三、编译
(1)选择:开始->所有程序->Qt5.2.0->Qt5.2.0->MSVC 2010 OpenGL->Qt5.2.0 for Desktop(MSVC 2010 OpenGL)
    如下:
 
(2)进入Qt源码目录,我的为:D:\Software\Qt\Qt5.2.0\5.2.0\Src\qtbase\src\plugins\sqldrivers\mysql
(3)执行命令:qmake "INCLUDEPATH+=D:\mysql-5.6.15-win32\include" "LIBS+=D:\mysql-5.6.15-win32\lib\libmysql.lib" mysql.pro
    如下:
 
 
    执行完成之后,就会生成Makefile文件。
    如下:
 
 
(4)选择:开始->所有程序->Microsoft Visual Studio 2010->Visual Studio Tools->Visual Studio 命令提示(2010)
    如下:
 
 
(5)执行命令:nmake
如下:
 

    正常结束后,就会生成MySQL驱动库。
如下:
 


(6)准备环境
    将生成的qsqlmysql.dll、qsqlmysqld.dll拷贝到D:\Software\Qt\Qt5.2.0\5.2.0\msvc2010_opengl\plugins\sqldrivers目录中。
    将MySQL目录(D:\mysql-5.6.15-win32\lib)下的libmysql.dll、libmysqld.dll拷贝到D:\Software\Qt\Qt5.2.0\5.2.0\msvc2010_opengl\bin目录中。
 
    好了,到这里就大功告成了。

 

Qt之编译MySQL数据库驱动(MSVC),古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。