0

我正在使用 QtRuby 和 PostgreSQL 开发一个应用程序。我在Linux上成功开发并成功运行。现在我想在 Windows 中运行相同的应用程序。但我无法连接到数据库(postgresql)。我收到以下错误:

 QSqlDatabase: QPSQL driver not loaded
 QSqlDatabase: available drivers: QSQLITE QODBC3 QODBC
4

4 回答 4

2

正如错误消息所说,Qt 无法使用 QPSQL 驱动程序与 Postgres 对话。可能插件还没有编译。

本方法所示,您需要安装 PostgreSQL 开发人员库,然后手动构建 Qt 驱动程序插件。有关确切命令,请参阅操作方法。

于 2009-03-16T08:20:07.063 回答
0

伟大的!完成!不过有一些小技巧要注意: 1. Mingw-utils,0.4-1在Windows 7上是不行的,一定要用0.3。2. PSQL驱动目录下有一个psql.json文件,请勿删除。

于 2013-06-12T04:39:58.370 回答
0
  1. 按照此处的说明编译 QPSQL 插件:http: //ldc.usb.ve/docs/qt/sql-driver.html#qpsql-for-postgresql-version-7-3-and-above
  2. 将 PostgreSQL bin 路径添加到 PATH 环境变量
于 2012-01-26T08:17:13.573 回答
0

在 Windows 中使用 QT 的 Postgresql:如何编译驱动程序 QPSQL - MinGw - Win7

1)检查安装目录,在我的电脑:

PostgreSQL (32 bit)    C:\PSQL32\bin
Qt (32 bit)            C:\QT\4.8.0\bin
MingW32                C:\QT\qtcreator-2.4.0\mingw\bin      

2)将这3个目录添加到系统PATH

3) 下载 'mingw-utils' 并安装在 C:\Qt\4.8.0\bin (需要实用程序 REIMP.exe)

4) 将 libpq.lib 转换为对 mingw32 有用的格式:

光盘 C:\PSQL32\lib

REIMP -d libpq.lib

打开 libpq.def 并删除定义开头的所有“_”

dlltool --input-def libpq.def --output-lib libpq.a --dllname libpq.dll

5)编译:

光盘 C:\Qt\4.8.0\src\plugins\sqldrivers\psql

qmake -o Makefile "INCLUDEPATH+=C:\PSQL32\include" "LIBS+=C:\PSQL32\lib\libpq.a" psql.pro

mingw32-进行调试

mingw32-make 发布

10)复制dll:

libqsqlpsqld4.a   qsqlpsqld4.dll    (debug)  

libqsqlpsql4.a   qsqlpsql4.dll      (release)

在目录中:

C:\Qt\4.8.0\plugins\sqldrivers

QT 5.01 版的新问题

struct timespec 有多种定义

在 PostgreSQL 的文件pthread.h (C:\PSQL32\include\pthread.h)

代替:

#ifndef HAVE_STRUCT_TIMESPEC

和:

#if ((!defined(_TIMESPEC_DEFINED)) && (!defined(HAVE_STRUCT_TIMESPEC)))


完毕 :-)

浮士德

于 2013-03-22T19:06:55.957 回答