• 13556阅读
  • 5回复

总结一下QT4连接mysql,解决driver not loaded错误 [复制链接]

上一主题 下一主题
离线pbcnet
 
只看楼主 倒序阅读 楼主  发表于: 2009-08-07
折腾了昨天一个下午,再加今天上午,到现在终于搞定了
使用了google、百度以及本论坛中能够搜索到的所有资料都没解决我的问题,因此有必要总结一下:
我的QT版本是2009.03,mysql版本是6.0(好像是去年安装到机器上的,现在mysql网站最高版本是5.4,疑惑ing),使用windows xp操作系统,开发环境Eclipse(Start Eclipse with MinGW启动的)
首先像大多数人碰上的问题一样,编译不通过,后来发现make不支持太空格的,把mysql的include 和lib目录复制到 d:\mysql目录下

qmake -o makefile "INCLUDEPATH+=D:\MySQL\include" "LIBS+=D:\MySQL\lib\opt\libmysql.lib" mysql.pro
make

这样make后只能生成debug版本的,必须再 make -f makefile.release才能生成release版的,而且必须手工拷贝qsqlited4.dll qsqlited4.a qsqlite4.dll qsqlite4.a D:\QT\2009.03\qt\plugins\sqldrivers目录下,不想很多资料上所说的自动生成到D:\QT\2009.03\qt\plugins\sqldrivers目录下。

有个资料说必须使用mingw-utils包下载:http://www.qtcn.org/download/mingw-utils-0.3.tar.gz,可能与qt版本有关,用qt2009.03不需要这个工具生成libmysql.a也能编译通过。另外在编译过程中发现
qmake -o makefile "INCLUDEPATH+=D:\MySQL\include" "LIBS+=D:\MySQL\lib\opt\libmysql.lib" mysql.pro  中libmysql.lib为全部大写字母,make会报告一个ld.exe找不到 libmysql错误,让人感到莫名其妙。

编译总算搞定后,运行我的test程序,报告 driver not loaded错误,使用plugintester(qt官方网站提供,测试plugins的加载)显示qsqlited4.dll 和qsqlite4.dll均没法加载,搜索资料,把libmySQL.dll拷贝到所有能考虑到的目录下均不能解决问题,拷贝到qt的plugins时 pugintester会报告libmySQL.dll也不能加载,郁闷之极差点放弃!

既然libmySQL.dll也不能,开始怀疑是mysql版本的问题了,到mysql网站下载了mysql5.1版本,重新经过编译,拷贝,运行我的test.exe.终于提示数据库找不到了,而不是什么driver not loaded错误了,但高兴劲还没过呢,新问题又来了!
     在eclipse开发环境中运行test.exe依然报考driver not loaded 错误,又被迷惑了1个小时,其中周折不在细说,解决办法是:Eclipse中project properties Run/Debug Setings 选中test.ext点编辑,Environment 编辑path变量,把D:\MySQL\MySQL Server 5.1\bin加进去,OK!接下去可以学习QSqlQuery了!再见
离线hzf.luck
只看该作者 1楼 发表于: 2009-09-27
楼主能说清楚点不?最近也遇到了类似的情况,已经生成那两个动态链接库文件了,但是运行程序的时候还是显示drivers not loaded!谢谢了楼主
离线johngoofy

只看该作者 2楼 发表于: 2009-09-28
用LZ的方法搞定了。
虽然还不明天什么是DEBUG什么是RELEASE版的驱动。但是,网上的教程好多都只不好使的。建议这个能弄成精。呵呵
离线guyansrg

只看该作者 3楼 发表于: 2009-09-29
在是用的时候,你需要确认:
1、.pro工程文件里是否开启了 QTPLUGIN += qsqlmysql
离线hope_yh

只看该作者 4楼 发表于: 2010-02-18
我在官网上下载了mysql-connector-c++-1.0.5-osx10.5-x86-32bit包,解开后放在plugin/sqldrivers/下,在.pro文件中加上了inlude路径和libs路径,mac机器上也出现了同样的问题"QMYSQL driver not loaded",我不知是什么原因。
离线zheguzai

只看该作者 5楼 发表于: 2013-09-24
今日我也碰到这个问题,搞死了,真他娘的烦,驱动也编译了,也拷贝过去了,就特么的报driver not loaded
快速回复
限100 字节
 
上一个 下一个