Sie können (extrahieren Sie einfach alle .o
Dateien und verknüpfen Sie sie mit -shared
zu einem .so
), aber ob es funktioniert und wie gut es funktioniert, hängt von der Plattform ab und ob die statische Bibliothek war kompiliert als positionsunabhängiger Code (PIC). Auf einigen Plattformen (z. B. x86_64) ist nicht-PIC-Code in gemeinsam genutzten Bibliotheken nicht gültig und funktioniert nicht (tatsächlich denke ich, dass der Linker die .so
ablehnen wird). Auf anderen Plattformen funktioniert nicht-PIC-Code in gemeinsam genutzten Bibliotheken, aber die speicherinterne Kopie der Bibliothek ist nicht zwischen verschiedenen Programmen, die sie verwenden, oder sogar verschiedenen Instanzen desselben Programms gemeinsam nutzbar, so dass es zu einem riesigen Speicherbedarf kommt / p>
Ich verstehe nicht, warum Sie die Dateien Ihrer dynamischen Bibliothek nicht einfach in .o-Dateien erstellen und mit
verknüpfen können %Vor%Tags und Links c c++ gcc shared-libraries static-libraries