B
Hallo zusammen,
ich habe folgendes Szenario: Ich habe ein Programm und linke dieses mit verschiedenen Libs, die teilweise selbst wiederum Abhängigkeiten haben. Alle libs, gegen die gelinkt wird, liefere ich im bin-Verzeichnis mit, in der auch das executable liegt. Ich verwende die GCC.
Um den Linker anzuweisen, hier zu schauen, habe ich die executable mit der Option
-Wl,-rpath,$ORIGIN
gelinkt. Gemäß der Ausgabe von
readelf -d | grep RPATH
war das soweit auch erfolgreich. Gebe ich nun aber
ldd -v <binary>
ein, so werden 2 Libs nicht aufgelöst. Andere, die völlig analog mit dem selben Mechanismus und den selben Linker-Optionen gelinkt werden, werden völlig korrekt aufgelöst und gegen die Exemplare, die im bin-Ordner sind, gelinkt.
Der Ausgabe ist auch zu entnehmen, dass er offenbar direkt aus dem executable versucht, diese libs zu laden, es sind also nicht Abhängigkeiten anderer dyn. gelinkter libs. Andere, die ebenfalls direkt vom executable geladen werden, werden aber gelinkt wie gedacht.
Meine Frage daher: Woran könnte das liegen? Hat es vll. damit was zu tun, dass irgwelche statisch gelinkten libs in anderen rpaths nach Abhängigkeiten suchen?
Wenn weitere Infos benötigt werden, werde ich diese so schnell wie möglich bereitstellen.
Vielen Dank!
Gruß,
badday