ich versuche seit einiger Zeit Qt mit pSQL zu kompilieren. Ich halte mich dabei an die Anleitungen von Volker Wiedel „QT 4x unter Visual Studio 2005“ und der PostgreSQL Dokumentation.
Ich verwende folgende Software:
- Windows XP
Visual Studio 2005 Standard Edition ohne SP1
QT Version 4.4 ohne MinGW (qt-win-opensource-src-4.4.0)
PostgreSQL 8.3.1
Code: Alles auswählen
link /LIBPATH:"c:\Programme\qt4\lib" /LIBPATH:"c:\Programme\qt4\lib" /NOLOGO /BASE:0x62000000 /INCREMENTAL:NO /DLL /MANIFEST /MANIFESTFILE:"tmp\obj\release_s
hared\QtSql.intermediate.manifest" /VERSION:4.40 /OUT:..\..\lib\QtSql4.dll @C:\DOKUME~1\levergbp\LOKALE~1\Temp\nm4D.tmp
Bibliothek "..\..\lib\QtSql4.lib" und Objekt "..\..\lib\QtSql4.exp" werden erstellt.
libpq.lib(fe-connect.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__DeleteSecurityContext@4" in Funktion "_closePGconn".
libpq.lib(fe-connect.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__FreeCredentialsHandle@4" in Funktion "_closePGconn".
libpq.lib(fe-connect.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__SHGetFolderPathA@20" in Funktion "_pqGetHomeDirectory".
libpq.lib(fe-auth.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_FreeContextBuffer@4" in Funktion "_pg_SSPI_continue".
libpq.lib(fe-auth.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_InitializeSecurityContextA@48" in Funktion "_pg_SSPI_continue".
libpq.lib(fe-auth.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_AcquireCredentialsHandleA@36" in Funktion "_pg_SSPI_startup".
..\..\lib\QtSql4.dll : fatal error LNK1120: 6 nicht aufgelöste externe Verweise.
NMAKE : fatal error U1077: ""C:\Programme\Microsoft Visual Studio 8\VC\BIN\link.EXE"": Rückgabe-Code "0x460"
Stop.
NMAKE : fatal error U1077: ""C:\Programme\Microsoft Visual Studio 8\VC\BIN\nmake.exe"": Rückgabe-Code "0x2"
Stop.
NMAKE : fatal error U1077: "cd": Rückgabe-Code "0x2"Dabei gehe ich wie folgt vor:
1)
Als erstes rufe ich die Visual Studio 2005 Eingabeaufforderung auf und führe im Visual Studi 8\common7\tools\vsvars.bat aus.
2)
Kompilieren von libpq
Zunächst wechsele ich in den src Ordner des Postgreverzeichnis.
Nun starte ich den Kompiliervorgang mittels:
nmake /f win32.mak
Die Dateien libpq.dll,libpqdll.lib und libpq.lib wurden erfolgreich erstellt
Code: Alles auswählen
interfaces\libpq\Release\libpq.dll
interfaces\libpq\Release\libpqdll.lib
interfaces\libpq\Release\libpq.lib)Diese drei Dateien kopiere ich in dem lib Ordner von QT.
In meinem Fall: C:\Programme\qt4\lib.
3).
Anlegen folgender Systemvariablen
Code: Alles auswählen
PATH:
C:\Programme\qt\bin
QMAKESPEC:
win32-msvc2005
QTDIR:
C:\Programme\qt
LIB:
C:\Programme\qt\lib
INCLUDE:
C:\Programme\postgresql-8.3.1src\src\include
C:\Programme\postgresql-8.3.1src\src\include\libpq
C:\Programme\postgresql-8.3.1src\src\interfaces\libpqWechseln in das QT Verzeichnis (C:\Programme\Qt)
Ausführen des Befehls:
configure -release -no-stl -no-opengl -no-sql-sqlite -qt-sql-psql -platform win32-msvc2005
Die Einstellungen werden erfolgreich übernommen.
Starte ich nun mit nmake den Kompiliervorgang, tritt der oben beschriebene Fehler ein.
Lass ich die -qt-sql-psql Anweisung weg. Kompiliert qt erfolgreich durch.
In den anderen Foreneinträgen, konnte ich die gewünschte Informataion nicht finden.
Wäre jemand so freundlich mir bei diesem Problem zu helfen?
Danke im voraus
Mit freundlichen Grüßen
Fisch