C++ g++ | linken

MR34L

Cadet 4th Year
Registriert
Apr. 2008
Beiträge
107
Hey.

gibt es eine Möglichkeit g++ zu zwingen die benötigten libraries nur in den flags zu suchen,
also welche per -L/bla/bla -lbla angegeben wurde und nicht
etwa nochmal in der LD_LIBRARY_PATH zu schauen.

Hab manche shared libs mehrfach und will halt nich, dass er die erstbeste linkt,
sondern eben eine bestimmte und zwar die, deren Pfad ich g++ als flag mitgegeben habe.

Falls ich LD_LIBRARY_PATH leer lasse, kompiliert er zwar,
aber wenn ich dann ldd auf die executable anwende, gibt er mir an,
dass zu den gelinkten libs der Pfad nicht bekannt ist.

Ich hoff es ist einigermaßen rübergekommen was ich will.

Vielen Dank schon mal im Voraus :)

PS. OS ist SLES10.1
 
Wenn ich mich richtig erinnere mit -Wl,--rpath.

Einfach mal die Manpage konsultieren. Ist aber die Holzhammer-Methode, macht man so eigentlich nicht.
 
Zuletzt bearbeitet:
Das was du machen willst ist genau das was man eigentlich nicht machen sollte.
Du kannst nicht davon ausgehen, dass auf jedem Endgerät die Libraries im gleichen Verzeichnis liegen!!

Was du machen kannst ist ein Shellscript mit ausliefern, welches LD_LIBRARY_PATH entsprechend setzt und dann das eigentliche Programm startet.
 
Du musst sie nicht einmal "streichen". Wenn du eigene Bibliotheken mit deinem Programm auslieferst, dann setz den Pfad zu denen einfach an den Anfang von LD_LIBRARY_PATH um die Standardverzeichnisse des Betriebsystems zu überlagern. Die Suchpfade werden der Reihenfolge nach abgearbeitet.
 
Zurück
Oben