我编译好了qt5.12的mysql驱动,在我自己的机器上运行成功了,但是将程序打包放到其他机器上,就还是无法连接mysql。显示:QMYSQL driver not loaded。
按照网上的教程,我的libmysql.dll和qsqlmysql.dll都放好了。却还是不行,哪位也遇到过这种问题吗?怎么解决啊?

qt mysql驱动 其他电脑无法使用
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
3条回答 默认 最新
关注
要在另一台机器上运行使用Qt编译的程序,除了需要Qt库文件之外,MySQL的驱动库文件(dll)也是必须的。
通常来讲,以下几个条件可以确保Qt连接MySQL:Qt得以支持MySQL(编译时包含MySQL驱动)
libmysql.dll 已经放在了应用程序可访问的目录下,例如你的应用程序的执行文件(.exe)所在的目录。
qsqlmysql.dll 或 qsqlmysqld.dll(取决于你是在 debug 还是在 release 模式下编译的应用) 需要放在 Qt 的 sqldrivers 文件夹下。可以试试把它们放在应用程序的相应位置(程序目录下的 sqldrivers 目录),并确保此目录在应用程序的路径中。还应该注意,libmysql.dll 和 Qt 的版本(32位或64位,debug或release)应与你的应用程序的版本保持一致。
如果解决不了,可以试试使用 QCoreApplication::addLibraryPath() 或 QCoreApplication::setLibraryPaths() 函数,把驱动(dll)的路径添加到程序的库路径中。还可以使用 QCoreApplication::libraryPaths() 来检查你的程序的库路径。
只有在这些动态链接库文件放在了正确的位置并可以被你的应用程序找到,你的程序才可以在其他机器上正常运行。
如果按照以上步骤仍无法解决问题,建议你在应用程序开始运行时添加一些调试输出,如打印所有的数据库驱动,和检查当前的库路径等信息,以帮助你定位问题。比如:qDebug() << QSqlDatabase::drivers(); qDebug() << QCoreApplication::libraryPaths();
解决 无用评论 打赏 举报