• 7543阅读
  • 0回复

【经验分享】关于driver not loaded问题的解决。 [复制链接]

上一主题 下一主题
离线午小夜
 

只看楼主 倒序阅读 楼主  发表于: 2009-10-30
本贴首次发布于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).

问题解决:
  1. //don't forget about QT+= sql
  2. qDebug() << QSqlDatabase::drivers();
  3. QSqlDatabase db( QSqlDatabase::addDatabase( "QMYSQL" ) );
  4. 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:
  1. $QTDIR/bin/qmake "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib -lmysqlclient_r" mysql.pro
  2. make
搞定.耶!现别急着乐.继续在刚刚的那个路径下输入make install.这下就可以开始乐了 ,打开/home/wuxiaoye/qtsdk-2009.04/qt/plugins/sqldrivers 看看是不是多了个 libqsqlmysql.so.
完全成功了 ,嘿嘿.

PS:希望这篇文章 ,能够对遇到同样问题的朋友有帮助 .
[ 此帖被午小夜在2009-10-30 12:39重新编辑 ]
[操作系统版本]  Windows XP;Linux Ubuntu;Linux Fedora;
[Qt SDK版本]    4.7.0
[SDK 发布日期]  2010.05
[IDE(集成开发环境)] QtCreator
个人网页:http://hi.baidu.com/午小夜
學歷:Royal Jalidon
快速回复
限100 字节
 
上一个 下一个