/************************************************************************************************************************************
因为要写个连接mysql的动态库,所以研究了下win下Qt连接MySql (mingw)。网上搜了下,qt中没有现成的mysql驱动,所以必须自己动手编译
下文所用环境
操作系统:win7
编译器:mingw
mysql: mysql5.5
Qt:4.6.3
这里需要一个mingw工具reimp 是一个把 .lib 转换成.a 的工具, 后面会说那里用到。
下载地址:http://www.qtcn.org/download/mingw-utils-0.3.tar.gz
参考连接:
注:本环境只是简单的把mingw 和qt底下的bin 加入到了path环境变量中,其他没有配什么,所以不需要担心这方面
*************************************************************************************************************************************/
Qt Assistant中搜索下:
会看到,里面已经有说明,不过太精炼,真正做的时候总是因为这或那,搞的你头大。
我安装工具的路径
Qt:C:\Qt\2010.04\qt
mysql:C:\MySQL\MySQL Server 5.5
下面一步一步讲:
1.因为mysql如果是默认安装,文件名是有空格的,所以我在d:/下创目录 mysql
2.把C:\MySQL\MySQL Server 5.5\include C:\MySQL\MySQL Server 5.5\lib 都拷贝到 d:\mysql中
3.qt助手里说的是用 libmysql.lib 和nmake来编译,我看其他资料上说是没问题,但是 mingw是linux下的环境 需要libmysql.a的。 所以需要用到reimp工具来进行转换
如果你的mingw/bin中没有,那么上面有下载地址,下载解压后,把reimp拷贝到 mingw/bin下
ctrl+r 输入 cmd 回车
命令:
cd d:\mysql\lib
reimp -d libmysql.lib
dlltool -k -d libmysql.def -l libmysql.a
执行完后,在d:\mysql\lib 中应该有libmysql.a文件了
4.因为有些环境变量没配,所以这里需要打开 Qt command Prompt 。细心的话你会发现打开Qt command Prompt时,它会设置一些环境变量。
命令:
1. cd %QTDIR%\src\plugins\sqldrivers\mysql
2. qmake
-o Makefile "INCLUDEPATH+=D:\mysql\INCLUDE" "LIBS+=D:\mysql\LIBMYSQL.a" mysql.pro
3. mingw32-make
执行到这里,如果没有提示错误,那么就说明成功了。去C:\Qt\2010.04\qt\plugins\sqldrivers 会看到
qsqlmysql4.dll
libqsqlmysql4.a
qsqlmysqld4.dll
libqsqlmysqld4.a
说明成功了
下面创建一个qt empty project 别忘了在 pro文件里添加
QT += sql
main.cpp
#include
#include
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qDebug() << "Available drivers:";
QStringList drivers = QSqlDatabase::drivers();
foreach(QString driver, drivers)
qDebug() << "\t "<< driver;
qDebug() << "End";
return a.exec();
}
执行结果
希望这篇对你有帮助