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/文件夹,拷贝覆盖即可
- 一开始运行报错:QSqlDatabase: xxx driver not loaded,available drivers中确实没有相关驱动,将Qt目录中的
-
- 然后再运行还报上述错误,并且显示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:
- 疑似系统内存在多个Qt版本,打包错误。打包命令增加
./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)