本贴首次发布于
http://www.cuteqt.com/bbs/ ,请大家多多关注
cuteqt本贴
详细内容请参见
http://www.cuteqt.com/bbs/viewthread.php?tid=323;
问题描述:自己写好的一个工程,拿到Linux Ubuntu操作系统下编译不过,提示
QMYSQL driver not loaded.驱动无法加载!
我是刚转到Ubuntu下的 ,Qt SDK也是安装比较新的2009.04版(Qt 4.5.3).安装了MySQL的dev包.(make sure that you've installed the
mysqlclient,mysql libs and so on).
问题解决:- //don't forget about QT+= sql
- qDebug() << QSqlDatabase::drivers();
- QSqlDatabase db( QSqlDatabase::addDatabase( "QMYSQL" ) );
- qDebug() << db.lastError();
第一个qDebug语句输出的是 可用的数据库驱动列表.("QSQLITE", "QSQLITE2", "QPSQL7", "QPSQL")
如果无法加载QMYSQL驱动,第二个qDebug语句输出的是关于MYSQL数据库发生的最后一个错误信息"QSqlError(-1, "driver not loaded", "driver not loaded") ,大概是这样的,有点记不太清楚了 .
之后,按照Qt帮助文档的说明,Build the QMYSQL Plugin on Linux:
首先,我去找到了MySQL的头文件目录: /usr/include/mysql ,接着找到了MySQL的共享库目录: /usr/lib (目录下有很多/usr/lib/libmysql*),这两个目录是要告诉qmake的.然后把当前目录改变到/home/wuxiaoye/qtsdk-2009.04/qt/src/sql/drivers/mysql目录下(我的QT安装路径是/home/wuxiaoye/qtsdk-2009.04/qt).
然后按照提示输入qmake "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib -lmysqlclient_r" mysql.pro
继续,输入make.奇怪的事情发生了 .报错了...
然后,我可爱的师父Shiroki出现了,首先告诉我修改了$QTDIR/src/plugins/sqldrivers/mysql/mysql.pro文件,添加了一句 INCLUDEPATH += /usr/include/mysql (这个目录就是刚提到的mysql头文件目录 ).然后,确定下qmake的时候是不是用的系统自带的老版本.终端输入qmake -v.发现刚用的 qmake是系统自带的Qt 4.3.4的qmake.解决方法:绝对路径调用最新的qmake:
- $QTDIR/bin/qmake "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib -lmysqlclient_r" mysql.pro
- make
搞定.耶!现别急着乐.继续在刚刚的那个路径下输入make install.这下就可以开始乐了 ,打开/home/wuxiaoye/qtsdk-2009.04/qt/plugins/sqldrivers 看看是不是多了个 libqsqlmysql.so.
完全成功了 ,嘿嘿.
PS:希望这篇文章 ,能够对遇到同样问题的朋友有帮助 .
[ 此帖被午小夜在2009-10-30 12:39重新编辑 ]