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

时间:2023-02-12 04:55:12

作者:奋斗ing丶孩子

转自:http://blog.sina.com.cn/s/blog_a6fb6cc90101gzm1.html


 

 Qt之操作数据库(SQLite)中已经介绍了关于Qt如何操作数据库的问题。由于授权的许可限制,Qt的开源版本无法提供所有的驱动程序,当配置Qt时,即可以选择Qt本身包含的SQL驱动程序。
   注:Qt5.2以前的版本,提供的数据库包括:ODBC、SQLite、PSQL,其它没有提供的需要自己进行编译。但从Qt5.2开始,已经包含MySQL,不需要手动编译。但是为了说明如何使用MySQL,这里将各个版本的用法都进行对比、说明。
Qt5.2版本   安装Qt5.2版本的,可以在安装目录下,pluins\sqldrivers下进行查看,面包含有MySQL驱动。
Qt之编译MySQL数据库驱动(MSVC)


Qt5.2之前的版本   针对5.2之前的版本MySQL需要自行编译,这里就以5.2为例(其它版本同理)。   关于数据库驱动的介绍以及如何编译可以参考Qt助手,里面有一节:SQL Database Drivers。
Qt之编译MySQL数据库驱动(MSVC)
     下面讲述关于如何利用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)    如下:
Qt之编译MySQL数据库驱动(MSVC)
(2)转到页面最下面,MySQL Community Edition (GPL),选择:Download fromMySQL Developer Zone >>    如下:
Qt之编译MySQL数据库驱动(MSVC)

(3)转到页面右上角,选择:New Releases对应的版本(这里我选择的是5.6)
    如下:
Qt之编译MySQL数据库驱动(MSVC)
(4)转到页面最下面,Other Downloads,选择对应的版本(这里我选择的是32位)    如下:
Qt之编译MySQL数据库驱动(MSVC)
   下载完成之后,进行解压,拷贝到一个指定的路径(我选择的是:D:\mysql-5.6.15-win32)。
三、编译(1)选择:开始->所有程序->Qt5.2.0->Qt5.2.0->MSVC 2010OpenGL->Qt5.2.0 for Desktop(MSVC 2010 OpenGL)    如下:
Qt之编译MySQL数据库驱动(MSVC)
(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    如下:
Qt之编译MySQL数据库驱动(MSVC)
   执行完成之后,就会生成Makefile文件。   如下:
Qt之编译MySQL数据库驱动(MSVC)
(4)选择:开始->所有程序->Microsoft Visual Studio 2010->VisualStudio Tools->Visual Studio 命令提示(2010)    如下:
Qt之编译MySQL数据库驱动(MSVC)
(5)执行命令:nmake如下:
Qt之编译MySQL数据库驱动(MSVC)
    正常结束后,就会生成MySQL驱动库。
如下:

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

(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目录中。
    好了,到这里就大功告成了。
测试:
更多参考:
注:   技术在于交流、沟通,转载请注明出处并保持作品的完整性。   作者:╰☆奋斗ing❤孩子`  原文:http://blog.sina.com.cn/s/blog_a6fb6cc90101gzm1.html