• 7942阅读
  • 5回复

已解决:发布带mysql的程序,Driver not loaded,QMYSQL [复制链接]

上一主题 下一主题
离线dongming
 
只看楼主 倒序阅读 楼主  发表于: 2009-07-01
有一个QT的程序A.exe,链接mysql进行数据处理。
我现在想在一台干净的操作系统(没有安装任何开发环境mysql),上面运行。
通过depends,我提取了exe所需要的dll,它们包括mingwm10.dll、qsqlmysql4.dll、QtCore4.dll、QtGui4.dll、QtSql4.dll、libmysql.dll,外加我的A.exe。
现在问题是,我的A.exe可以启动,但是连接mysql出错,错误代号Driver not loaded,QMYSQL
以前没有在QT平台开发过程序,请问我还有什么部署没有做到,是不是需要注册一些dll,还是需要指定sql的路径,还是其他什么?

我google了好多帖子,都没有什么明确的答案,这里也有人发不过,希望朋友不吝帮忙。


我现在把这写文件放在一个文件夹中,是可以在开发环境下执行的,删除了libmySQL.dll就不能执行,这说明了我的确是使用的这个路径下的libmySQL.dll
但是把这些文件夹移动到新的干净的winXP,就Driver not loaded,exe,旁边就是libmySQL.dll,程序为什么说找不到呢?
帮我分析分析为什么
[ 此帖被dongming在2009-07-05 20:10重新编辑 ]
离线qlovet
只看该作者 1楼 发表于: 2009-07-03
我是用的 sqlite。 今天也遇到这样的问题。 我是这样解决的

1. 数据库驱动是以第三方 plugin 的形式出现在qt里的。 你需要首先把 关于数据库的dll放在一个目录下
  比如  plugin\ qsqlmysql4.dll libmysql.dll  

2. 在你的main.cpp  中 添加 qApp->setLibraryPaths("..\plugin");

3. 在 release 后 再别的机器上就可以用了。
离线dongming
只看该作者 2楼 发表于: 2009-07-04
非常感谢,我明天就去试试,这两天一直忙别的,没上来回复,我明天去试试
离线dongming
只看该作者 3楼 发表于: 2009-07-05
1楼的朋友,我用了你的方法,本来还在开发环境的PC上还可以运行的程序,更不能运行了,说是找不到Driver not loaded
我现在把这个文件放在一个文件夹中,是可以再开发环境下执行的,删除了libmySQL.dll就不能执行,这说明了我的确是使用的这个路径下的libmySQL.dll
但是把这个文件夹移动到新的干净的winXP,就Driver not loaded,exe旁边就是libmySQL.dll,程序为什么说找不到呢?
帮我分析分析为什么
[ 此帖被dongming在2009-07-05 20:11重新编辑 ]
离线dongming
只看该作者 4楼 发表于: 2009-07-05
问题已解决,解决的方法是:
1.在打开数据库之前,添加    qApp->addLibraryPath(qApp->applicationDirPath () + "/plugins");
2.在执行文件exe所在的文件夹中,创建\plugins\sqldrivers,然后将qsqlmysql4.dll libmysql.dll放入\plugins\sqldrivers
3.问题解决

qlovet估计也是这个意思,但是我这里无效。
离线vampiler
只看该作者 5楼 发表于: 2009-08-06
我这里还是不行,哪位前辈有完整的建议吗?谢谢了
快速回复
限100 字节
 
上一个 下一个