Kann eine statische Bibliothek *.a
in Linux zur Laufzeit dynamisch geladen werden?
Ich habe hier gelesen, dass
... sowohl statische als auch gemeinsam genutzte Bibliotheken können als dynamisch geladene Bibliotheken verwendet werden.
Wie man statische Bibliothek dynamisch lädt?
Eine statische Bibliothek ist mehr oder weniger nur eine Sammlung von Objektdateien. Wenn Sie eine statische Bibliothek in einem Programm verwenden möchten, müssen Sie die ausführbare Datei damit verknüpfen. Die ausführbare Datei enthält dann die statische Bibliothek (oder die Teile, die Sie verwendet haben).
Wenn Sie eine statische Bibliothek zur Laufzeit mit dlopen
laden wollen, müssen Sie zuerst eine dynamische Bibliothek libfoo.so
erstellen, die sie enthält.
Öffnen einer .a
Datei mit dlopen
funktioniert nicht (getestet auf Ubuntu 10.04). Mit folgendem Beispielprogramm:
Ich bekomme:
%Vor% Wenn ich stattdessen /usr/lib/libz.so
verwende, bekomme ich:
funktioniert der gleiche Code für ein gemeinsames Objekt.
Tags und Links c++ linux shared-libraries