如何在Windows中使用Qt访问Postgresql
我正在使用QtRuby和PostgreSQL开发一个应用程序。我成功地在Linux上开发并运行。现在我想在windows中运行相同的应用程序。但我无法连接到数据库(postgresql)。我收到以下错误:如何在Windows中使用Qt访问Postgresql,windows,postgresql,qtruby,Windows,Postgresql,Qtruby,我正在使用QtRuby和PostgreSQL开发一个应用程序。我成功地在Linux上开发并运行。现在我想在windows中运行相同的应用程序。但我无法连接到数据库(postgresql)。我收到以下错误: QSqlDatabase: QPSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QODBC3 QODBC 正如错误消息所说,QPSQL驱动程序不可用于Qt与Postgres进行对话。可能插件还没有编译 如前所述
QSqlDatabase: QPSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC3 QODBC
正如错误消息所说,QPSQL驱动程序不可用于Qt与Postgres进行对话。可能插件还没有编译 如前所述,您需要安装PostgreSQL开发人员库,然后手动构建Qt驱动程序插件。有关确切的命令,请参见操作指南
在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个目录添加到系统路径
3) 下载“mingw-utils”并在C:\Qt\4.8.0\bin中安装(需要实用程序REIMP.exe)
4) 将libpq.lib转换为适用于mingw32的有用格式:
CD C:\PSQL32\lib
REIMP-d libpq.lib
打开libpq.def并删除定义开头的所有“389;”
dlltool--输入def libpq.def--输出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发布
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) 替换: #如果NDEF具有_STRUCT_TIMESPEC 与: #如果((!defined(_TIMESPEC_defined))&(!defined(HAVE_STRUCT_TIMESPEC)))
完成:-) 浮士德太好了!完成了! 但是,有一些提示需要注意: 1.Mingw utils,0.4-1在Windows7上不起作用,我们必须使用0.3。
2.psql驱动程序目录中有一个psql.json文件,请不要删除。谢谢您的回复。我编译了驱动程序,它生成了qsqlpsql4.dll,但仍然得到了相同的错误。我现在该怎么办。你好,我知道这篇文章已经有一段时间了。但我试图让这项工作没有成功。在我的例子中,它不会加载驱动程序,但会将其列为可用。另外,我没有编译插件的代码。我安装了QtOpenSource,试图修改它并下载代码,但安装程序没有提供插件代码。我该怎么办?