Chinaunix首页 | 论坛 | 博客
  • 博客访问: 76224
  • 博文数量: 13
  • 博客积分: 742
  • 博客等级: 军士长
  • 技术积分: 255
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-14 21:17
文章分类

全部博文(13)

文章存档

2013年(3)

2012年(5)

2011年(3)

2010年(2)

我的朋友

分类: C/C++

2013-11-27 13:15:02

最近项目用到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下载地址如下:

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

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

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

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

下载地址:

下载完毕后,打开此包,把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的驱动就编译好了。。。

 

阅读(1648) | 评论(0) | 转发(0) |
0

上一篇:重写Qevent函数实现监听键盘按键

下一篇:没有了

给主人留下些什么吧!~~