contrib xml2: libxslt wird nicht gefunden

Hallo,

ich möchste xml2 nutzen - ich habe postgsql 8.1.4 im Einsatz (selbst kompiilliert). libxml2 bzw. libxslt sind vorhanden und werden auch von php genutzt. Wenn ich jetzt make bzw. gmake all im Verzeichnis contrib/xml2 ausführe bekommen ich folgenden Fehler:

gcc -I/usr/local/libxml2//include/libxml2 -fpic -I. -I../../src/include -D_GNU_SOURCE  -I/usr/local/readline/include -I/usr/local/zlib/include  -c -o xslt_proc.o xslt_proc.c
xslt_proc.c:18:26: error: libxslt/xslt.h: No such file or directory
xslt_proc.c:19:35: error: libxslt/xsltInternals.h: No such file or directory
xslt_proc.c:20:31: error: libxslt/transform.h: No such file or directory
xslt_proc.c:21:31: error: libxslt/xsltutils.h: No such file or directory
xslt_proc.c: In function âxslt_processâ:
xslt_proc.c:48: error: âxsltStylesheetPtrâ undeclared (first use in this function)
xslt_proc.c:48: error: (Each undeclared identifier is reported only once
xslt_proc.c:48: error: for each function it appears in.)
xslt_proc.c:48: error: syntax error before âstylesheetâ
xslt_proc.c:102: error: âstylesheetâ undeclared (first use in this function)
xslt_proc.c:117: warning: assignment makes pointer from integer without a cast
make: *** [xslt_proc.o] Error 1

Das Verzeichnis ist im PATH.

Ich habe keine Ahnung woran es noch liegen könnte - kann mir hier jemand helfen?

Gruß
Patrick

Das hat mit $PATH erst einmal gar nichts zu tun.
Wo genau liegen bei dir die Dateien, die dort oben nicht gefunden werden (die liegen btw. ganz sicher nicht in $PATH :smiley: )? Und wie stellst du sicher, dass der Source, den du gerade compilierst, diese Include Dateien findet?

also, die liegen in /usr/local/libxslt/include/libxslt/ - und damit die gefunden werden habe ich diesen Pfad $PATH per export hinzugefügt.

Ich bin jetzt nicht der große Held was solche Arbeiten angeht, und dachte in meinem jugendlichen Leichtsinn das würde wohl ausreichen…

postgresql habe ich nach /usr/local/pgsql installiert, das source Verzeichnis habe ich unter /usr/local/src/postgresql-8.1.4.

Bisher bin ich immer ganz gut zu recht gekommen mit LAMPP (Linux, Apache, mySQL, PHP und postgreSQL), aber nun greife ich das erste Mal auf die contrib zurück.

Wie gehe ich nun am Besten weiter vor? Die README in contrib/xml2 habe ich gelesen - ist ja nicht viel - und auch das Makefile habe ich angesehen. Ich in der Meinung, das sollte so klappen.

Wo liegt der Fehler?

Du kannst beim configure Aufruf sicherlich Pfade zu Bibliotheken und Include Dateien angeben, dort gehören die Pfade zu diesen extra installierten Bibliotheken mit hinein.

ähm … muss ich diese Pfade bereits beim configure für postgers mit angeben? Weil bei xml2 gbit es kein Configure - dann müsste ich jetzt zunächst postgres neu compilieren mit den entsprechenden Angaben - korrekt?

Kopiere bzw. linke die Verzeichnisse doch mal nach /usr/include … dann müssten sie automatisch gefunden werden.

erst einmal besten Dank für die Hilfe bishier her, leider bleibt der Fehler trotz Link bestehen. Ich habe den Link mit ln -s /usr/local/src/libxslt/include ins Verzeichnis /usr/include gesetzt, der Fehler bleibt der gleiche.

Hast du noch eine Idee woran es liegen kann - die Dateien sollten nun wirklich gefunden weden.

Wenn der Fehler der gleiche bleibt, findet er die Dateien weiterhin nicht. Ergo ist der Link falsch gesetzt:

ln -s /usr/local/src/libxslt/include /usr/include/libxslt

Danach müsstest du in /usr/include/libxslt/ die Datei xslt.h sehen … das ist bei dir aktuell noch nicht der Fall, stimmts?

P.S.: den alten Link bitte löschen, der dürfte wohl /usr/include/include heissen.

Der symbolische Link war korrekt, die Dateien wurden unter /usr/include/libxslt angezeigt.

Ich habe jetzt postgre komplett neu kompiliert und dabei die includes/libs entsprechend angegeben. Danach hat es auch sauber mit contrib/xml2 make bzw. make install geklappt Auch das Anlegen der Funktionen war erfolgreich.

Besten Dank für die Unterstützung - habe wieder was dazu gelernt. Nun werde ich meine neuen xml-Funktionen in Ruhe ausprobieren.

Gruß
Patrick

Komisch …

Ich habe jetzt postgre komplett neu kompiliert

Hinweis: Die Software heisst “PostgreSQL” oder kurz “Postgres”, aber nicht “Postgre” :wink:

Viel Erfolg weiterhin.

… tja, ehrlich gesagt hat mich der Name von Beginn an etwas irritiert :wink:

xml2 ist genau das was ich gesucht habe und läuft nun auch so wie erhofft - nochmals besten Dank ads!