Problem beim bauen der Clientbibliotheken mit Visual Studio 6

From: "Robert Max Kramer" <RobertMax(dot)Kramer(at)gmx(dot)de>
To: <pgsql-de-allgemein(at)postgresql(dot)org(dot)>
Subject: Problem beim bauen der Clientbibliotheken mit Visual Studio 6
Date: 2006-08-16 12:54:52
Message-ID: !~!UENERkVCMDkAAQACAAAAAAAAAAAAAAAAABgAAAAAAAAAdNOb0pektES53BnmwIKiZcKAAAAQAAAA81hmTMfFHUGF6R7BlUQ3KwEAAAAA@gmx.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-de-allgemein

Hallo,

Ich hab Probleme beim bauen der Clientbibliotheken. Es schein also ob dieses
Problem bekannt ist?

Jedenfalls finden sich in der pgsql-hackers - Mailingliste unter
http://archives.postgresql.org/pgsql-patches/2006-05/msg00298.php
Zwei Beiträge mit derselben Fehlermeldung, ich jedoch verwende 8.1.4-1 unter
Windows XP SP2 und habe das Problem noch immer. Den Patch aus dem Beitrag
kann ich nicht finden. Daher versuchte ich, das Problem selbst zu lösen. Ich
verwende das MS-Vsual Studio 6 SP6, um die bibliotheken zu bauen mit
folgendem Befehl auf der Kommandozeile
"d:\Programme\PostgreSQL\8.1\source\src>nmake /f win32.mak":

(snip)
D:\Programme\PostgreSQL\8.1\source\src>nmake /f win32.mak

Microsoft (R) Program Maintenance-Dienstprogramm: Version 6.00.9782.0
Copyright (C) Microsoft Corp 1988-1998. Alle Rechte vorbehalten.

cd include
if not exist pg_config.h copy pg_config.h.win32 pg_config.h
cd ..
cd interfaces\libpq
nmake /f win32.mak

Microsoft (R) Program Maintenance-Dienstprogramm: Version 6.00.9782.0
Copyright (C) Microsoft Corp 1988-1998. Alle Rechte vorbehalten.

Building the Win32 static library...

cl.exe @C:\DOKUME~1\Max\LOKALE~1\Temp\nma02636.
wchar.c
..\..\backend\utils\mb\wchar.c(100) : error C2054: Nach 'inline' muss '('
folgen

..\..\backend\utils\mb\wchar.c(101) : error C2085: 'pg_euc_mblen' : Nicht in
der formalen Parameterliste enthalten
..\..\backend\utils\mb\wchar.c(101) : error C2143: Syntaxfehler : Fehlendes
';'
vor '{'
..\..\backend\utils\mb\wchar.c(116) : error C2054: Nach 'inline' muss '('
folgen

..\..\backend\utils\mb\wchar.c(117) : error C2085: 'pg_euc_dsplen' : Nicht
in de r formalen Parameterliste enthalten
..\..\backend\utils\mb\wchar.c(117) : error C2143: Syntaxfehler : Fehlendes
';'
vor '{'
..\..\backend\utils\mb\wchar.c(143) : warning C4013: 'pg_euc_mblen'
undefiniert;
Annahme: extern mit Rueckgabetyp int
..\..\backend\utils\mb\wchar.c(180) : warning C4013: 'pg_euc_dsplen'
undefiniert ; Annahme: extern mit Rueckgabetyp int NMAKE : fatal error
U1077: 'cl.exe' : Rueckgabe-Code '0x2'
Stop.
NMAKE : fatal error U1077: '"D:\Programme\Microsoft Visual
Studio\VC98\bin\NMAKE .EXE"' : Rueckgabe-Code '0x2'
Stop.
(snap)

Funktioniert also nicht. Daher versuchte ich Syntax-Varianten in wchar.c(99)
undwchar.c(115):

- static int inline ... tut's nicht
- inline static int ... tut's nicht
- static __inline int ... tut's
- static int ... tut's (ohne inline)

"tut's" bedeutet: es tut es erstmal: der nächste Aufruf von "nmake /f
win32.mak" führt zu folgendem:

(snip)
D:\Programme\PostgreSQL\8.1\source\src>nmake /f win32.mak

Microsoft (R) Program Maintenance-Dienstprogramm: Version 6.00.9782.0
Copyright (C) Microsoft Corp 1988-1998. Alle Rechte vorbehalten.

cd include
if not exist pg_config.h copy pg_config.h.win32 pg_config.h
cd ..
cd interfaces\libpq
nmake /f win32.mak

Microsoft (R) Program Maintenance-Dienstprogramm: Version 6.00.9782.0
Copyright (C) Microsoft Corp 1988-1998. Alle Rechte vorbehalten.

Building the Win32 static library...

link.exe @C:\DOKUME~1\Max\LOKALE~1\Temp\nma03456.
LINK : fatal error LNK1181: Eingabedatei "shfolder.lib" kann nicht ge÷ffnet
werd en NMAKE : fatal error U1077: 'link.exe' : Rueckgabe-Code '0x49d'
Stop.
NMAKE : fatal error U1077: '"D:\Programme\Microsoft Visual
Studio\VC98\bin\NMAKE .EXE"' : Rueckgabe-Code '0x2'
Stop.
(snap)

Eine "ShFolder.lib" gibt's nicht auf meinem System. Ich fand heraus das es
ein Teil des Platform SDK ist, welches beim Visual Studio 2003. dabei ist.
Also "leihte" ich mir diese Datei und probierte nmake erneut:

(snip)
D:\Programme\PostgreSQL\8.1\source\src>nmake /f win32.mak

Microsoft (R) Program Maintenance Utility, Version 7.10.3077 Copyright (C)
Microsoft Corporation. Alle Rechte vorbehalten.

cd include
if not exist pg_config.h copy pg_config.h.win32 pg_config.h
cd ..
cd interfaces\libpq
nmake /f win32.mak

Microsoft (R) Program Maintenance Utility, Version 7.10.3077 Copyright (C)
Microsoft Corporation. Alle Rechte vorbehalten.

Building the Win32 static library...

cl.exe @C:\DOKUME~1\sfr\LOKALE~1\Temp\nm57.tmp
wchar.c
link.exe -lib @C:\DOKUME~1\sfr\LOKALE~1\Temp\nm58.tmp
link.exe @C:\DOKUME~1\sfr\LOKALE~1\Temp\nm59.tmp
libpqdll.def(3) : warning LNK4017: DESCRIPTION-Anweisung wird von der
Zielplattf orm nicht unterstützt; ignoriert
Bibliothek '.\Release\libpqdll.lib' und Objekt '.\Release\libpqdll.exp'
wird erstellt
libpq.lib(fe-connect.obj) : error LNK2019: Nicht aufgelöstes externes Symbol
'_S HGetFolderPath', verwiesen in Funktion '_pqGetHomeDirectory'
.\Release\libpq.dll : fatal error LNK1120: 1 unaufgelöste externe Verweise
NMAKE : fatal error U1077: 'link.exe': R³ckgabe-Code '0x460'
Stop.
NMAKE : fatal error U1077: '"C:\Programme\Microsoft Visual Studio .NET
2003\SDK\
v1.1\Bin\nmake.exe"': R³ckgabe-Code '0x2'
Stop.
(snap)

Jetzt habe ich eine libpgdll.lib, aber der gesamte Prozess läuft nicht durch
und ich bin mir nicht sicher, was meine Änderungen in der wchar.c bewirkt
haben. Daher meine Fragen:

- gibt es die bibliotheken irgendwo schon als binaries? (damit ich sie nicht
selbst bauen muss)
- falls neine, kann man sie überhaupt mit dem VS 6 bauen?
- wo finde ich den Patch, von dem Bruce Momjian spricht (s.o.)?
- gibt es Ideen, warum der gesamte Prozeß fehlschlägt?

Würde mich sehr freuen, wenn jemand Rat weiß, Danke!

Gruß,
Robert Max Kramer

Browse pgsql-de-allgemein by date

  From Date Subject
Next Message Andreas Seik 2006-08-18 09:09:02 portierung nach oracle
Previous Message Susanne Ebrecht 2006-08-14 13:14:27 Standpersonal gesucht