如何在Windows中使用Qt访问Postgresql

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

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

Solutions Collecting From Web of "如何在Windows中使用Qt访问Postgresql"

如错误消息所示,QPSQL驱动程序不适用于Qt与Postgres进行通信。 可能该插件尚未编译。

正如这个方法所示,您需要安装PostgreSQL开发人员库,然后手动构建Qt驱动程序插件。 请参阅具体命令的操作方法。

  1. 按照这里的指示编译QPSQL插件: http ://ldc.usb.ve/docs/qt/sql-driver.html#qpsql-for-postgresql-version-7-3-and-above
  2. 将PostgreSQL bin路径添加到PATH环境变量中

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)为mingw32转换有用格式的libpq.lib:

CD C:\ PSQL32 \ lib

REIMP -d libpq.lib

打开libpq.def并在定义开始处删除所有“_”

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

5)编译:

CD 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)))


完成:-)

浮士德

大! 完成! 但是有一些提示要注意:1. Mingw-utils,0.4-1不能在Windows 7上运行,我们必须使用0.3。 2. PSQL驱动程序目录中有psql.json文件,请不要删除。