QT连接postgresql的问题

wjhx 2020-07-25 06:54:08
系统win7,QT为5.12.4,creator为4.9.1,postgresql为9.6.18,系统安装后没有驱动文件,自己进行了编译,后生成两个文件qsqlpsql.dll及qsqlpsqld.dll,在操作过程中的几个关键点:
1,生成了这两个文件;
2,复制到了QT目录5.12.4\mingw73_32\plugins\sqldrivers下;
3,对pg中的libpq.dll及libpq.lib,有各种说法,有的也放在sqldrivers中,有的放置在windows目录下,还有的是需要放在QT的5.12.4\mingw73_32\bin下,这几种我也都试过了。

现在的提示没有变化,还是
QSqlDatabase: QPSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7

这问题还能出在哪里呢
...全文
10030 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjhx 2020-07-30
  • 打赏
  • 举报
回复
感谢回复! 这里真的卡了好久,最后在开发环境中加入了一个postgres的引用路径,现在包含了三个:bin lib include 这个工具的路才刚刚开始,继续努力中,再次感谢
  • 打赏
  • 举报
回复
注意,qt的依赖症。 qsqlpsql插件依赖libpq libpq依赖ssl,建议看看插件dll的依赖性。
fly4free 2020-07-27
  • 打赏
  • 举报
回复
个人从 MySQL 的使用经验角度给你说说:

libpq.dll文件 放在 D:\build-Qt-Desktop_Qt_5_12_4_MinGW_32_bit-Debug\debug 下
和你的编码编译出来的程序(.exe)放在同一目录,并且 libpq.dll 所需的 依赖库也要放在一起

(放在系统目录下主要是有个缺点,后来的如果需要安装同名文件,可能会把你的覆盖,或者后装的软件会因此(就不释放了,但是由于所需版本不同)而可能不好使,所以最好的办法就是与 .exe 同一目录,不会影响别人,别人的也影响不了你,Windows平台这一点比较好)

并且,注意位数(32位 or 64位)要一致
wjhx 2020-07-26
  • 打赏
  • 举报
回复
数据库用的64位9.6.18版本,客户端下的32位编译的,可以正常生成两个文件,后又换过64位测试,编译不通过,所以仍旧使用32位同版本文件,在加载时显示: Got keys from plugin meta data ("QPSQL7", "QPSQL") Cannot load library D:\build-Qt-Desktop_Qt_5_12_4_MinGW_32_bit-Debug\debug\sqldrivers\qsqlpsqld.dll: 找不到指定的模块。 QLibraryPrivate::loadPlugin failed on "D:/build-Qt-Desktop_Qt_5_12_4_MinGW_32_bit-Debug/debug/sqldrivers/qsqlpsqld.dll" : "Cannot load library D:\\build-Qt-Desktop_Qt_5_12_4_MinGW_32_bit-Debug\\debug\\sqldrivers\\qsqlpsqld.dll: 找不到指定的模块。" QSqlDatabase: QPSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7

16,216

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧