statische Bibliothek dynamisch laden?

8

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?

    
dragan.stepanovic 02.09.2010, 10:08
quelle

2 Antworten

8

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.

    
JesperE 02.09.2010, 13:44
quelle
4

Öffnen einer .a Datei mit dlopen funktioniert nicht (getestet auf Ubuntu 10.04). Mit folgendem Beispielprogramm:

%Vor%

Ich bekomme:

%Vor%

Wenn ich stattdessen /usr/lib/libz.so verwende, bekomme ich:

%Vor%

funktioniert der gleiche Code für ein gemeinsames Objekt.

    
Andre Holzner 03.09.2010 19:29
quelle

Tags und Links