win7编译的QT4.8.4的mysql驱动

时间:2022-01-26 15:55:36

今天用QT连接mysql的时候显示没有mysql驱动,原来mysql驱动需要自己编译。期间遇到一些问题。但还好都被解决了。

1.      就是开始自己安装mysql5.5的时候是安装在C:\Program Files\MySQL下了,由于QT运行程序不能包含空格。所以就开始重新安装MYSQL,然后就遇到安装最后一步出现start service 未响应的问题。后来查找是有数据没有删除干净,解决方法参考http://dylwx.blog.163.com/blog/static/877725142012525105250457/。

2.      接下来就是编译mysql驱动了,参考http://heweiding155.iteye.com/blog/1393894   和 http://blog.csdn.net/wang_xuehen/article/details/7483133的方法。


将mysql安装目录下的include和lib两个文件夹拷贝到qt\4.7.4\src\plugins\sqldrivers\mysql下。可以自己新建一个目录如mysqllib。

        修改mysql.pro文件,在第二行添加如下内容

        INCLUDEPATH += "./mysqllib/include" 

LIBS+= "./mysqllib/lib/libmysql.lib"


cd qt\4.8.4\src\plugins\sqldrivers\mysql

qmake 

mingw32-make release

mingw32-make debug

全部执行完后,将release下的libqsqlmysql4.a,qsqlmysql4.dll和debug下的libqsqlmysqld4.a,libqsqlmysqld4.dll 拷贝至\Qt\4.8.4\mingw\plugins\sqldrivers  中

3、期间出现D:/QT/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.exe cannot find -1libmysql
      该问题产生的原因是在执行mingw32-make时,编译器在 D:\Q\mingw文件夹中找不到对应的库文
      件。此问题的解决方法如下:
      将C:\MySQL\lib\下的libmysql.lib拷贝到D:\QT\mingw\lib中即可解决。

在拷贝生成的mysql驱动到指定目录后,运行测试程序(程序在网上找的):

新建一个qt gui 控制台项目SQLtest

在SQLtest.pro中加入QT  +=sql

接着修改main.cpp如下

 

#include<QtCore/QCoreApplication>
#include<QtSql>
intmain(intargc,char*argv[])
{
QCoreApplicationa(argc,argv);
qDebug()<<"Availabledrivers:";
QStringListdrivers=QSqlDatabase::drivers();
foreach(QStringdriver,drivers)
qDebug()<<"\t"<<driver;
qDebug()<<"End";
returna.exec();
}
如果执行程序输出为以下内容则说明驱动安装成功了:
Available drivers:
		"QSQLITE"
		"QMYSQL3"
		"QMYSQL"
End