PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Linken von libGLU zur QT Kompiliereung



zorin
23.12.03, 11:17
Hallo zusammen,

ich wollte gerade die QT Bibliothek (Vers: 3.2.3) unter Suse 8.1 übersetzen. Das schlägt mit einem Fehler des Linkers fehl, da er die Bibliothek GLU nicht findet:

ld: cannot find -lGLU

Die sollte er allerdings schon finden, da "ldconfig -v" diese Bilbiothek anzeigt:

libGLU.so.1 -> libGLU.so.1.3

Kann mir jemand erklären wieso? Generell sollte es doch so sein, dass alle libXYZ.so Dateien, die sich in den Suchverzeichnissen (/etc/ld.so.conf) des ldconfig Programms befinden, mit einem

gcc ... -lXYZ

eingebunden werden können, oder???

Vielen Dank für die Hilfe
Zorin

kth
23.12.03, 16:19
Nein, da musst du zwischen dem dynamischen Run-time-Linker (man ld.so) und dem GNU Linker ld (man ld, info ld) unterscheiden.

Die Dateien ldconfig, /etc/ld.so.conf und /etc/ld.so.cache beziehen sich auf ersteren, die gcc-Optionen "-l" und "-L" auf letzteren.

Falls beim gcc-Aufruf kein zusätzlicher Library-Suchpfad mit "-L" angegeben ist, sucht er die zu linkenden Libraries nur auf Standardpfaden wie z. B. /lib, /usr/lib und /usr/local/lib.

Anscheinend liegt libGLU* bei dir entweder nicht auf einem solchen Standardpfad, oder es fehlt der Symlink ohne Versionsendung (d. h. libGLU.so), der auf die eigentliche Library-Datei verweist. Solche Symlinks sind meistens in Entwicklungspaketen enthalten, also Pakete mit der Bezeichnung "-devel" o. ä. im Namen.

Ich hoffe, das hilft dir weiter.

zorin
23.12.03, 17:38
oder es fehlt der Symlink ohne Versionsendung (d. h. libGLU.so), der auf die eigentliche Library-Datei verweist

Das war der Fehler, cool danke!!!!!


Gruss Zorin