qt下生成mysql驱动_Qt编译MySQL驱动

最近项目用到mysql数据库,程序是在Qt中开发的,在网上找了资料,随便写了两句,

myDB = new QSqlDatabase(QSqlDatabase::addDatabase("QMYSQL"));

myDB->setHostName("192.168.1.6");

myDB->setDatabaseName("KaoQingJi");

myDB->setPort(3306);

myDB->setUserName("root");

myDB->setPassword("123456");

myDB->open();

程序运行之后报如下错误

QSqlDatabase: QMYSQL driver not loaded

QSqlDatabase: available drivers: QSQLITE QODBC QODBC3

很明显Qt没有mysql的驱动,好自己动手编译吧;

1.首先安装QtSdk;

首先说明下Qt版本,我使用的版本是诺基亚发布的最后一个SDK版本,文件名为QtSdk-offline-win-x86-v1_2_1.exe,此版本安装完毕后包括Qt4.7.4和Qt4.8.1,大家在安装的时候注意下,由于要编译mysql的驱动,因此安装此sdk包时,不要选择默认的Default,要选择Custom进行安装,因为Default在安装的时候是不安装QtSource的,选择Custom后进行简单的配置,记得一定要选择QtSource,这个包里面就有支持Mysql的Qt驱动源码,一路点下去就会自动安装。

此版本的Qt下载地址如下:

http://pan.baidu.com/share/link?shareid=258560&uk=1042049493

2.安装mysql

我选择的mysql的版本为mysql-5.1.51选择Microsoft Windows 32. (Windows Installer format) 程序就可以,其他版本的mysql我没试过,应该也可以的,就是太大了。

下载地址:http://downloads.mysql.com/archives.php?p=mysql-5.1&v=5.1.51

安装的时候路径中尽量不要有空格,把所有的空格去掉;

安装完毕后我们需要的libmysql.dll文件就在你的安装路径下面的D:MySQLMySQL5.1libopt下面;这个是我的路径,你的路径可能不同,但这个文件肯定能找到的,

还需要另外一个工具,mingw-utils-0.4-1.zip,此工具用于将libmysql.dll转换成libmysql.lib文件,为什么需要转换呢?因为Qt用的编译器是MingW编译器,此编译器不能直接使用dll文件,

下载地址:

http://code.google.com/p/easymingwtoolkit/downloads/detail?name=mingw-utils-0.4-1.zip&can=2&q=

下载完毕后,打开此包,把bin文件下的reimp.exe文件解压到Qt安装路径下的mingw编译器下,具体路径为C:QtSDKmingwbin

然后再开始菜单中找到QtSDk->Desktop->Qt 4.8.1 for Desktop (MinGW);打开此终端

打开之后就跟cmd的黑屏一样的,这时切换目录到mysql目录中libmysql.dll所在文件夹,即D:MySQLMySQL5.1libopt目录下;

输入一下命令进行dll转换,

cd D:MySQLMySQL5.1libopt

reimp -d libmysql.lib (生成 libmysql.def文件)

dlltool -k -d libmysql.def -l libmysql.a (生成 libmysql.a文件)

上面两条命令执行完毕后,就得到我们需要的文件了libmysql.a

这是切换路径到C:QtSDKQtSources4.8.1srcpluginssqldriversmysql目录下面,此路径下面就是mysql的Qt源码;

cd C:QtSDKQtSources4.8.1srcpluginssqldriversmysql

qmake -o Makefile "INCLUDEPATH+=D:/MySQL/MySQL5.1/include" "LIBS+=D:/MySQL/MySQL5.1/lib/opt/libmysql.a" mysql.pro

上面这条命令在输入的时候,大家要注意路径是否跟自己的一致。

如果你的mysql在安装的时候有空格,可以将bin目录和include这两个目录拷贝到c盘的根目录,然后输入路径就可以了

把D:MySQLMySQL5.1libopt目录下的libmysql.dll文件拷贝到C:QtSDKDesktopQt4.8.1mingwbin,如果不拷贝,编译的时候会提示找不到llibmysql文件

上面命令执行完毕后,

然后

make

make release

不报错的话,就会在release目录和debug目录中分别生成libqsqmysqld4.a和libqsqmysql4.dll文件,

把这四个文件拷贝到C:QtSDKDesktopQt4.8.1mingwpluginssqldrivers目录下面。

到此,Qt下,mysql的驱动就编译好了。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值