2 Linkerfragen
-
Hallo,
2 kleine Fragen zum Linken unter Linux:
-
Wenn ich beim Kompilieren von C Code mehrere Library Pfade per -L angebe, haben diese Ordner dann Vorrang vor den Standard Lib Ordnern (/usr/lib64 etc.)?
-
Sagen wir ich habe eine lib myLib.so unter /usr/lib64 als auch unter /home/myDir/ und will jetzt 100%ig sicher gehen, dass er NUR die lib unter /home/myDir benutzt. Falls er sie dort nicht findet, soll der Linkvorgang mit einem Fehler abbrechen. Im Moment klappt das nicht, denn wenn er die Lib unter /home/myDir nicht findet, nimmt er einfach die unter /usr/lib64.
Danke!
-
-
Normalerweise werden nur Standardbibliotheken automatisch gelinkt. Siehe Linkerdefaults. Einfache Loesung: Bibliotheken unterschiedlich nennen.
-
ich glaube du kannst auch einfach den direkten Pfad angeben: gcc ... -l/path/to/lib.so
So geht das zumindest mit statischen Libs. Bei dynamischen ist eh die Frage was du eigentlich erreichen willst. Spätestens beim Ausführen müssen dann ganz andere Dinge in betracht gezogen werden, welche Library vom Programm benutzt wird: RPATH, LD_LIBRARY_PATH, /etc/ld.so.conf ...