您的位置:首页 > 编程语言 > Qt开发

windows qt连接postgresql(集锦)

2014-08-09 03:54 183 查看
转载于:http://no001.blog.51cto.com/1142339/301357

经过一天半的时间 ,,终于搞定了。。。。哈哈哈和

下面还是一些我参考过的文章,有空我会整体的整理一下,。。。

---------------------------

It works :D Quite why I'm still a little perplexed but here is what I have done:

Downloaded 4.1.2 src - previously I have 4.1.1 mingw installer

Configured with: configure -debug-and-release -plugin-sql-sqlite -plugin-sql-odbc -qt-libpng -qt-libjpeg -qt-sql-psql -L C:\psql\lib

Recompiled my app: placed the pgsql dlls in the same directory as the exe

I had also done the following prior to configure

set QTDIR=C:\Qt\4.1.2

set PATH=C:\Qt\4.1.2\bin

set PATH=%PATH%;C:\psql\include

set PATH=%PATH%;C:\psql\lib

set PATH=%PATH%;C:\MinGW\bin

So the differences are:

Slightly newer version of Qt - doubt if that makes any difference

I have the src rather than the installer - might make a difference

I have compiled it into Qt rather than as a plugin - might make a difference, although I doubt it.

When I get time I will compile Qt with pgsql as a plug in. I can't think of any difference at the moment.

jacek, thank you very much for your support and your valuable ideas.

graeme.

http://www.qtcentre.org/archive/index.php/t-1819.html

---------------------------------------

http://qtwiki.org/QPSQL_driver_not_loaded_-_unusual_solution

Recently had a lot of trouble making QPSQL driver available in QT 4.3.1 version. But fun part was that - driver loaded correctly then i copied all dll from {%pgsql)\bin\ files to executable
directory.
Copied files list.
comerr32.dll
depends.dll
gssapi32.dll
iconv.dll
k5sprt32.dll
krb5_32.dll
libeay32.dll
libiconv2.dll
libintl3.dll
libpq.dll
libxml2.dll
libxslt.dll
ssleay32.dll

Another interesting thing, that if I rename qsqlpsql4.dll to something else, driver still loads correctly :D :D. Perhaps I'm missing something, but at least it works now :)
By the way if drivers still does not get loaded try add this line in main.cpp file
qApp->addLibraryPath( qApp->applicationDirPath() + "/plugins");

And plugins directory should look like : plugins\sqldrivers\qsqlpsql4.dll

-----------------------------------

我先安装了PostgreSQL 8.2。

再装DEV-C++

再Qt.

环境变量如下:

INCLUDE=D:\PostgreSQL\8.2\include;D:\Dev-Cpp\include;D:\qt\4.3.4\include

LIB=D:\PostgreSQL\8.2\lib;D:\Dev-Cpp\lib;D:\qt\4.3.4\lib

PATH=D:\PostgreSQL\8.2\bin;D:\Dev-Cpp\bin;D:\qt\4.3.4\bin

后运行 configure.exe -share -release -qt-sql-psql -qt-sql-odbc -qt-zlib -qt-gif -qt-libpng -qt-libjpeg -qt-style-windowsxp -platform win32-g++ -L D:\PostgreSQL\8.2\bin -I D:\PostgreSQL\8.2\include

到此一切正常。

可是运行mingw32-make后出现以下问题。

g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-rel

oc -Wl,-s -mthreads -Wl -shared -Wl,--out-implib,d:\Qt\4.3.4\lib\libQtSql4.a -o

..\..\lib\QtSql4.dll object_script.QtSql.Release -L"d:\Qt\4.3.4\lib" -L"d:\Post

greSQL\8.2\lib" -L"d:\Dev-Cpp\lib" -L"d:\qt\4.3.4\lib" -L"d:\Qt\4.3.4\lib" tmp\o

bj\release_shared\QtSql_resource_res.o -LD:\PostgreSQL\8.2\lib -lpq -lws2_32 -la

dvapi32 -lodbc32 -lQtCore4

D:\Dev-Cpp\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: cannot f

ind -lpq

collect2: ld returned 1 exit status

mingw32-make[2]: *** [..\..\lib\QtSql4.dll] Error 1

mingw32-make[2]: Leaving directory `D:/qt/4.3.4/src/sql'

mingw32-make[1]: *** [release] Error 2

mingw32-make[1]: Leaving directory `D:/qt/4.3.4/src/sql'

mingw32-make: *** [sub-sql-make_default-ordered] Error 2

请问各位朋友,这是怎么回事?如何解决?

不胜感激
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: