Postgis 64bit kompilieren

Hallo,

ich möchte Postgres/Postgis in der 64bit Version einsetzen.

Postgres Version 8.4.1 habe ich jetzt mit SunStudio in 64bit kompliert. Auch Geos Version 3.1.1 und Proj Version 4.6.1 habe ich so kompliert.

Wenn ich nun versuche, Postgis zu kompilieren, komme ich leider nicht weiter, da ich die Fehlermeldung nicht verstehe.

./configure CC=’/opt/SUNWspro/bin/cc -xtarget=native64’ --with-pgconfig=/opt/postgresql/8.4.1/bin/pg_config --prefix=/opt/postgresql/8.4.1 --with-projdir=/usr/local --with-libs=/opt/sfw/lib/x64 --with-libs=/opt/sfw/lib/

meldet:
checking for libpq-fe.h… yes
checking for PQserverVersion in -lpq… no
configure: error: could not find libpq

Woran kann das liegen???

Danke im Voraus

mkuis

libpq kann er nicht finden … die sollte guenstiger weise in libs liegen … die ist wahrscheinlich im lieferumfang von deines postgres dabei

die passende datei liegt wohl unter
/opt/postgresql/8.4.1/include/libpq

muß ich die jetzt irgendwo angeben??

na schau doch mal dein kommando an … ziemlich am ende legst du die moeglichen pfade fuer solche libs fest …

die libpq ist halt die funktionsbibliothek welche von postgis verwendet wird …

du koenntest natuerlich auch alternativ deine libpq in den dort angegebenen pfad kopieren …

nachtrag:
also ich weiss jetzt nicht sicher, ob man dort mehrere pfade angeben kann, wenn ja, dann wuerde ich den pfad ins postgres legen - wenn nein, dann musst du die libpq kopieren - weil postgis wahrscheinlich dort auf noch weitere libs referenziert

Irgendwie komme ich damit nicht klar.

In meinem 64bit Postgres ist libpq ein Verzeichnis, keine Datei.
Es enthält genau eine Datei libpq-fs.h.

Wenn ich diese in das angebene lib-Verzeichnis kopiere, bleibt es bei dem Fehler…

du suchst eine libpq.so … oder wie auch immer dll’s bei sun heissen :slight_smile:

wo du die findest kann ich dir nicht sagen, weil ich keine dubiosen betriebssysteme verwende duck

Wenn du in die Datei config.log schaust, siehst du ganz genau, was fehlgeschlagen ist.

Ggf. musst du vom Ende her etwas weiter hochscrollen, in der Datei tauchen viele Fehlermeldungen auf, die manchmal auch nichts zu bedeuten haben.



P.S.: Jetzt bitte nicht den kompletten Inhalt dieser Datei hier posten, höchstens relevante Teile.

ich sehe gerade, dass er postgres auch kompiliert hat - kann es sein, dass man die libpq.so extra kompilieren muss? eigentlich nicht - ist doch ne kernkomponente - oder?

symbiont: warum probierst du es nicht aus? Deine Fragen bringen den TE auch nicht weiter.

weil du ein tolles buch geschrieben hast, und deshalb sicher weisst - wie der hase laeuft … die frage ging ja an dich …

In der config.log gibt es wohl an mehrern Stellen Stress


configure:2744: /opt/SUNWspro/bin/cc -xtarget=native64 -c conftest.c >&5
configure:2748: $? = 0
configure:2773: result: o
configure:2777: checking whether we are using the GNU C compiler
configure:2806: /opt/SUNWspro/bin/cc -xtarget=native64 -c conftest.c >&5
“conftest.c”, line 13: undefined symbol: choke
“conftest.c”, line 13: syntax error before or at: me
cc: acomp failed for conftest.c

configure:10477: result: /opt/SUNWspro/bin/cc -xtarget=native64
configure:10709: checking for C compiler version
configure:10717: /opt/SUNWspro/bin/cc -xtarget=native64 --version >&5
cc: Warning: option – passed to ld
usage: cc [ options] files. Use ‘cc -flags’ for details
configure:10721: $? = 1
configure:10728: /opt/SUNWspro/bin/cc -xtarget=native64 -v >&5
usage: cc [ options] files. Use ‘cc -flags’ for details
configure:10732: $? = 1
configure:10739: /opt/SUNWspro/bin/cc -xtarget=native64 -V >&5
cc: Sun C 5.9 SunOS_i386 Patch 124868-01 2007/07/12
usage: cc [ options] files. Use ‘cc -flags’ for details
c

configure:15469: /opt/SUNWspro/bin/cc -xtarget=native64 -o conftest -g conftest.c -lfl >&5
“conftest.l”, line 6: warning: improper pointer/integer combination: op “!=”
“conftest.l”, line 6: warning: improper pointer/integer combination: op “=”
“lex.yy.c”, line 1444: warning: implicit function declaration: exit
“lex.yy.c”, line 1507: warning: implicit function declaration: malloc
“lex.yy.c”, line 1525: warning: implicit function declaration: realloc
“lex.yy.c”, line 1535: warning: implicit function declaration: free
ld: fatal: library -lfl: not found
Ld: fatal: File processing errors. No output written to conftest
configure:15476: $? = 1
configure: failed program was:



was ist jetzt die Ursache und wie kann ich sie beheben???

Kann es sein das einige libs in einem lib64-Verzeichnis gesucht und nicht gefunden werden (oder andersrum natürlich)?
Zumindest ich bin da auch schon mal drauf reingefallen…

Grüssle Uwe

ich glaube, ich sehe Licht…

Zum einen hatte ich die libpq.so sowohl in 32-bit als auch 64-bit. Ich habe die 64-bit in meinen Pfad für 64 bit gelegt, den ich ja im Configure mit with-libs angeben.

Nur der configure meldet:
configure: WARNING: unrecognized options: --with-libs

Nur wie kann ich ich den Lib-Pfad hier festlegen???

möglicherweise darfst du --with-libs nur einmal angeben

dann solltest du versuchen die verschiedenen pfade mit semikolon zu trennen … das ist so ueblich bei pfaden - aber nur ne vermutung

ich hatte schon auf einen Eintrag reduziert:

./configure CC=’/opt/SUNWspro/bin/cc -xtarget=native64’ --with-pgconfig=/opt/postgresql/8.4.1/bin/pg_config --prefix=/opt/postgresql/8.4.1 --with-projdir=/usr/local --with-libs=/opt/sfw/lib/x64

Trotzdem die Meldung. Geht with-libs hier vielleicht nie??? Aber wie geht es dann??

ich bin jetzt einen Schritt weiter, da ich GEOS endlich in 64bit kompiliert bekommen habe. Trotzdem kommt es zu einem Fehler beim Configure von Postgis:

./configure CC=’/opt/SUNWspro/bin/cc -xtarget=native64 -m64 -L/opt/sfw/lib/x64 -L/usr/local/lib ’ --with-pgconfig=/opt/postgresql/8.4.1/bin/pg_config --prefix=/opt/postgresql/8.4.1 --with-projdir=/usr/local

liefert:
checking for PQserverVersion in -lpq… yes
checking for geos-config… /usr/local/bin/geos-config
checking geos_c.h usability… yes
checking geos_c.h presence… yes
checking for geos_c.h… yes
checking for initGEOS in -lgeos_c… no
configure: error: could not find libgeos_c - you may need to specify the directory of a geos-config file using --with-geosconfig


in der config.lig steht:
ld: warning: file libgcc_s.so.1: required by /usr/local/lib/libgeos_c.so, not found

was fehlt mir da???

libgcc_s.so ist glaube ich teil des gcc die musst du auch in den lib-pfad aufnehmen … wie oben schon bei den anderen libs

jetzt trete ich auf der Stelle…

mit
./configure CC=’/opt/SUNWspro/bin/cc -xtarget=native64 -m64 -L/opt/sfw/lib/x64 -L/usr/local/lib -L/usr/sfw/lib/amd64’ --with-pgconfig=/opt/postgresql/8.4.1/bin/pg_config --prefix=/opt/postgresql/8.4.1 --with-projdir=/usr/local

erscheint die Meldung
checking for geos-config… /usr/local/bin/geos-config
checking geos_c.h usability… yes
checking geos_c.h presence… yes
checking for geos_c.h… yes
checking for initGEOS in -lgeos_c… no
configure: error: could not find libgeos_c - you may need to specify the directory of a geos-config file using --with-geosconfig

obwohl doch der geos-config check vorher geklappt hat…


und im config.log steht:
configure:17193: error: could not find libgeos_c - you may need to specify the directory of a geos-config file using --with-geosconfig

was nun???

ich kann auch nur raten

also ich wuerde ungeachtet des obigen erfolgreichen checks diesen rat befolgen:

could not find libgeos_c - you may need to specify the directory of a geos-config file using [color="Red"]--with-geosconfig[/color]

weil das eine muss mit dem andern nicht unbedingt was zu tun haben - auch wenn es auf den ersten blick so aussieht

das bringt mich halt nicht weiter. Ich denke, mit –with-geosconfig gebe ich an, wo sich die Datei geos-config befindet. Wenn ich dies verwende, erscheint die Meldung:
Using user-specified pg_config file: /opt/postgresql/8.4.1/bin/pg_config
checking libpq-fe.h usability… yes
checking libpq-fe.h presence… yes
checking for libpq-fe.h… yes
checking for PQserverVersion in -lpq… yes
configure: error: the user-specified geos-config file /usr/local/bin does not exist

die Routine steigt also noch früher aus…