欢迎光临
我们一直在努力

Qt 连接数据库报错QSqlDatabase: xxx driver not loaded,但后续提示available drivers里包含此驱动

Qt 连接数据库报错QSqlDatabase: xxx driver not loaded,但后续提示available drivers里包含此驱动

  • 一、问题描述
  • 二、解决方案
  • 三、调试过程

一、问题描述

  • 使用linuxdeployqt打包,然后运行程序,报错如下:

QSqlDatabase: `xxx` driver not loaded
QSqlDatabase: available drivers: QSQLITE `xxx`

参考链接: linux下 QT出现QSqlDatabase: MYSQL driver not loaded:https://huaweicloud.csdn.net/654cb9bb34bf9e25c799cf3a.html Qt连接Mysql出现问题(一):“Driver not loaded Driver not loaded“:https://developer.aliyun.com/article/1560254

二、解决方案

出现原因是程序可找到相关数据库驱动的库文件,但是库文件的依赖有问题. 使用ldd命令可查看具体依赖问题

  • 使用linuxdeployqt打包,指定-qmake,一般指定后不会出现依赖问题
  • 运行ldd命令后,根据具体问题,手动拷贝相关依赖库

三、调试过程

  • 一开始运行报错:QSqlDatabase: xxx driver not loaded,available drivers中确实没有相关驱动,将Qt目录中的sqldrivers/文件夹,拷贝覆盖即可
  • 然后再运行还报上述错误,并且显示available drivers中包含xxx驱动.
  • 进入到sqldrivers/文件夹,使用ldd命令 ldd xxx.so,报错如下:

libQt5Sql.so.5: version `Qt_5_PRIVATE_API' not found
libQt5Core.so.5: version `Qt_5_PRIVATE_API' not found

  • 疑似系统内存在多个Qt版本,打包错误。打包命令增加-qmake:

./linuxdeployqt 可执行文件 -appimage -qmake=/home/xxx/Qt5.12.12/5.12.12/gcc_64/bin/qmake

  • 程序运行正常。

其他问题参考链接:

  • linux设置了环境变量不生效,仍然只进入/usr/bin中去找:https://blog.csdn.net/weixin_39712497/article/details/80263060
  • linux qt 打包由于版本不一致导致失败:https://blog.csdn.net/weixin_43838644/article/details/132741924
  • linuxdeployqt找不到Qt库路径怎么办:https://ask.csdn.net/questions/8814055
  • KylinV10上qt5.9开发应用打包步骤(一)–linuxdeployqt 报错解决:https://blog.csdn.net/bootleader/article/details/116243886
  • 使用linuxdeployqt在linux下进行Qt打包发布(超详细):https://blog.csdn.net/zyhse/article/details/106381937/ – 推荐
赞(0)
未经允许不得转载:171主机测评 » Qt 连接数据库报错QSqlDatabase: xxx driver not loaded,但后续提示available drivers里包含此驱动
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址