这实在是一个很坑爹的东西,我研究了3天才搞定,以致于我都不是太清楚到底是哪一步有用。。。但是在这个过程中还是有些步骤具有启迪意义,所以我把我得到的一些经验写上来。
首先我使用的是
QtSDK。里面的QT是4.8.0版本的。是在
http://qt-project.org/downloads下载的。一定要下Offline安装啊,online我装了一晚上都
没有装成功。
然后我参考了
http://qt-project.org/doc/qt-4.8/sql-driver.html#qmysql-for-mysql-4-and-higher http://bbs.byr.cn/#!article/CPP/43225 http://mobile.51cto.com/symbian-268727.htm http://www.ctocio.com.cn/301/12230301.shtml 这几个资料。
然后开始加载
驱动,首先遇到
问题就是,网上现有的资料都是老版本的QT写的,%QTDIR%的路径都是C:\Qt\2010.05\qt\src\plugins\sqldrivers\mysql,用QTSDK的人就完全不知道该怎么办。我们的路径应该是C:\QtSDK\Desktop\Qt\4.8.0\mingw。
接着想运行[attachment=7808]命令就发现在C:\QtSDK\Desktop\Qt\4.8.0\mingw这个目录下根本就没有什么src文件夹。于是我就下载了这个东西qt-everywhere-opensource-src-4.8.0.zip。下载的网址我已经找不到了.把这个
文件夹里的src文件拷出来粘贴到C:\QtSDK\Desktop\Qt\4.8.0\mingw下,然后我们就有了要用的文件。
接着我们就开始运行官方说明文档里说的步骤。注意官方给的命令行里的文件路径和实际的有很大的区别。基本上就是下面三步。
1.首先cd %QTDIR%\src\plugins\sqldrivers\mysql
2.接着qmake "INCLUDEPATH+=你的mysql中include文件夹的路径" "LIBS+=你的mysql中libmysql.lib的路径" mysql.pro
3.再接着用make来
编译。
第一步运行的时候会报错,我直接忽略没有管就继续了。好像没有什么影响。
接着就会开始编译,各种看不懂的信息狂弹。接着发现东西还是没有到位,这是因为编译的结果藏在C:\QtSDK\Desktop\Qt\4.8.0\mingw\src\plugins\sqldrivers\mysql\debug这里。在这个文件夹内找到libqsqlmysqld4.a和qsqlmysqld4.dll两个文件,把他们考到C:\QtSDK\Desktop\Qt\4.8.0\mingw\plugins\sqldrivers这里。然后把qsqlmysqld4.dll文件考到system32。就大功告成了。
最后用这个测试一下,如果弹出的对话框里面有mysql就成功了。
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qDebug() << “Available drivers:”;
QStringList drivers = QSqlDatabase::drivers();
foreach(
QString driver, drivers)
qDebug() << “\t” << driver;
return a.exec();
}
备注:其中我还做了一个工作
“qt4 for mingw要想编译出qsqlmysql库来,我们先得编译出mingw需要的libmysql.a这个文件来,可使用mingw工具来生成。 mingw -utils包里的reimp命令(如果没有这个命令的话,可从本帖开头处给出的地址中下载这个文件,并把它解压开后的bin目录里的reimp内容拷贝到 mingw的bin目录下面。mysql安装的时候默认的
安装路径中有空格,我们得先把它的include和lib目录拷贝到没有空格的路径下,比如C: \mysql下)
CODE: cd c:\mysql\lib\opt reimp -d libmysql.lib dlltool -k -d libmysql.def -l libmysql.a 这时候你会发现你的lib文件夹下面会多出两文件: libmysql.a & libmysql.def (推荐使用mysql5.5,
其他的貌似没有libmysql*.lib文件)"但是不知道这个是否真的有帮助。最后说明一下。我的QTSDK里是没有QT command prompt这个东西的。用Qt 4.8.0 for desktop(minGW)就行了。
要是自己想加载驱动的话建议配合
http://mobile.51cto.com/symbian-268727.htm和我的这个贴子看,应该就没有问题了。我比较懒写的不成系统。