PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Headerdatei nicht gefunden



Aleks
28.03.07, 17:55
Hallo Leute,

seit dem Wochenende schlage ich mich mit einem Programm rum, daß ich einfach nicht auf meiner 9er Suse kompiliert kriege. Nachdem configure seine Checks und Voreinstellungen erfolgreich beendet hat, starte ich das Kompilieren mit make. Dabei schmeißt mir der Compiler jedoch beständig folgenden Fehler um die Ohren:

...
gcc -DHAVE_CONFIG_H -I. -I/usr/local/include -I/usr/local/include/libgdome -I/usr/include/libxml2 -g -O2 -D_REENTRANT -Wall -W -pipe -D_GNU_SOURCE -I/usr/local/include -I/usr/local/BerkeleyDB.3.1/include -I/usr/include -pthread -c archiver.c -MT archiver.lo -MD -MP -MF .deps/archiver.TPlo -fPIC -DPIC -o .libs/archiver.o
In file included from archiver.c:39:
/usr/local/include/libgdome/gdome.h:27:18: glib.h: No such file or directory
In file included from archiver.c:39:
/usr/local/include/libgdome/gdome.h:90: error: parse error before "GdomeException"
/usr/local/include/libgdome/gdome.h:90: warning: type defaults to `int' in declaration of `GdomeException'
/usr/local/include/libgdome/gdome.h:90: warning: data definition has no type or storage class
/usr/local/include/libgdome/gdome.h:94: error: parse error before "gchar"
/usr/local/include/libgdome/gdome.h:94: warning: no semicolon at end of struct or union
...

... und noch ein paar Seiten mehr voller Parse Errors, die vermutlich aus dem fehlenden Header glib.h resultieren -- syntaktisch gibt's an den angemeckerten Stellen in gdome.h nämlich nichts zu monieren.

Die glib habe ich in /usr/local/include/glib-2.0 installiert, wo sich auch die gesuchte Headerdatei glib.h befindet. Wird aber ohne Angaben nicht vom Compiler gefunden, wie's aussieht.

Ich habe dann nochmal von vorne angefangen und versucht, explizit per

# ./configure --includedir=/usr/local/include/glib-2.0

auf das entsprechende Verzeichnis hinzuweisen, was mir allerdings auch keinen Erfolg bescherte. An anderer Stelle las ich, daß Leute damit Erfolg hatten, das von automake generierte Makefile von Hand um den Eintrag zu ergänzen, der dem gcc den Bibliothekspfad bekanntmacht. Bei mir also:

CFLAGS = -I/usr/local/include/glib-2.0

Auch dies zeigte keine Veränderungen. CFLAGS wird vorher allerdings auch nirgends im Makefile explizit aufgelistet ... Ehrlich gesagt fehlt mir in dieser 500-Zeilen-Datei auch der Überblick, um ggf. die richtige Stelle für die zusätzliche Option zu finden -- nichts, was mich direkt ansprang. Das geht doch sicher auch einfacher ...

Um wenigstens mal zu sehen, was danach im make-Prozeß passiert -- mein Gefühl sagte mir schon, daß dieses Problem nicht das letzte sein würde --, habe ich den obigen Aufruf von gcc mit all seinen Parametern um

-I/usr/local/include/glib-2.0

ergänzt und direkt auf der Konsole ausgeführt. Das Resultat waren etliche Warnings und Parse Errors aus unterschiedlichen Headerdateien der glib. Also installierte ich eine andere Version der Bibliothek ... und erhielt das gleiche Resultat. Kaum vorzustellen, daß all diese Versionen der glib syntaktisch fehlerhafte Headerdateien haben sollen, ohne daß jemandem vor mir das aufgefallen wäre. ;-)

Ich bin ziemlich ratlos. Kann mir jemand weiterhelfen?

carstenj
28.03.07, 20:27
Hi,

ich würde einfach glib-devel per Yast installieren.

Aleks
28.03.07, 20:53
Hallo carstenj.


ich würde einfach glib-devel per Yast installieren.
Auch das habe ich bereits probiert. Die entsprechenden Dateien landen dann standardmäßig in /opt/gnome/include/glib-2.0, werden nachher bei Kompilieren aber ebensowenig gefunden wie die "von Hand" aus den glib-Sources kompilierten in /usr/local/include/glib-2.0.