Was ist der Unterschied zwischen LD_PRELOAD_PATH und LD_LIBRARY_PATH?
Ich verstehe, was sie tun, aber nicht die Einzelheiten, wie sie sich unterscheiden.
Von Ссылка
Der dynamische Linker kann beeinflusst werden, um sein Verhalten zu modifizieren während der Ausführung des Programms oder der Verknüpfung des Programms. Beispiele dafür finden Sie in den Runtime-Linker-Handbuchseiten für verschiedene Unix-ähnliche Systeme. Eine typische Modifikation von Dieses Verhalten ist die Verwendung von LD_LIBRARY_PATH und LD_PRELOAD Umgebungsvariablen. Diese Variablen passen die Laufzeitverknüpfung an Prozess durch Suchen nach gemeinsamen Bibliotheken an alternativen Standorten und durch zwangsweise Laden und Verknüpfen von Bibliotheken, die es sonst nicht geben würde, jeweils.
Insbesondere interessieren mich die Unterschiede in Linux, die sowohl LD_PRELOAD_PATH als auch LD_LIBRARY_PATH haben:
LD_PRELOAD
(nicht LD_PRELOAD_PATH
) ist eine Liste spezifischer Bibliotheken ( Dateien ), die vor anderen Bibliotheken geladen werden sollen, unabhängig davon, ob das Programm dies will oder nicht. LD_LIBRARY_PATH
ist eine Liste von Verzeichnissen , die beim Laden von Bibliotheken, die sowieso geladen worden wären, durchsucht werden sollen. Unter Linux können Sie man ld.so
für weitere Informationen über diese und andere Umgebungsvariablen lesen, die den dynamischen Linker betreffen.
Tags und Links linker shared-libraries