Fehler beim Compilieren...Hilfe

SirMornak

Member
Hi @All,

ich habe ein sehr schwerwiegendes Problem, bei fast allen Ports die ich compilieren
möchte, kommt so eine Fehlermeldung :

/usr/bin/ld: warning: <library>, needed by, <library>, not found (try using -rpath or -rpath-link)

D.h., die Ports compilieren, aber der Link-Vorgang bricht ab, weil ld eine verlinkte Bibliothek nicht finden kann.

Hier ein kleines Beispiel :
Ich compiliere einen Port, der libgthread-2.0.so benutzt und Funktionen aus der libintl.so.6 (verlinkt mit libgthread).
Dann kommt : /usr/bin/ld: warning: libintl.so.6, needed by libgthread-2.0.so not found ()

Und das ist bei fast allen Ports so.
Ich habe das Netz (Manpages auch) jetzt schon seit mindestens 2 Wochen durchsucht,
und immer kommt keine Lösung, nur sowas wie mach cvs oder portinstall oder saug dir
die aktuellsten Ports etc.
Doch das kann ich leider nicht machen, da mein Laptop(freeBSD 5.2.1) kein Internet hat.

Ich habe selbst einen Workaround gefunden, nämlich in jedem Makefile der Ports, die ich installieren will, die Optionen für den Linker zu verändern :
LDFLAGS="-rpath=/usr/local/lib -rpath=/usr/X11R6/lib"
Dann funktioniert alles wunderschön, nur muss ich das bei jedem Makefile machen und bei manchen Ports(wie jdk14) ist das nicht ganz so einfach.
In den Manpages zu ld(1) steht auch drin, dass er beim Linken nicht nur die Option -rpath=<dir> berücksichtigt, sonder auch eine Datei : /etc/ld.so.conf, aber das macht er leider nicht, denn dort stehen die Verzeichnisse auch drin. Auch das setzen der
Umgebungsvariablen wie LD_LIBRARY_PATH oder LD_RUN_PATH oder DT_RUNPATH oder DT_RPATH bringen rein gar nichts.

So, ich weiß, das war jetzt ziemlich ermüdend, aber vielleicht weiß jemand Rat, würde
ich jedenfalls sehr begrüßen.

Danke schonmal,

Thomas.
 
Zurück
Oben