Frage

So, nachdem ich lief libtool und bekam eine libfoo.lo und foo.o Datei aus meiner Bibliothek Quelle aus, wie kann ich wandle die libfoo.lo Datei in eine normale Linux Shared Library, wie libfoo.so.1.0.0 so ich es auf meinem Zielsystem installieren und Link kann?

War es hilfreich?

Lösung

Von den Ausgängen in der Frage erwähnt, sieht es aus wie Sie libtool lief mit --mode Kompiliermodusfunktion =. Sie müssen libtool wieder mit --mode = Link zu produzieren .a und .so Bibliotheken ausgeführt werden.

libtool ist nur ein einfaches Wrapper für gcc, ln ar und ranlib, die zur Herstellung von Bibliotheken benötigt wird. Alles, was sie tut, ist gcc fügt die erforderlichen Optionen führen Sie Ihre statischen und gemeinsam genutzte Bibliotheken, um sicherzustellen, dass korrekt erstellt werden.

Wenn libtool Kompilieren den -fPIC Tag fügt die notwendige Erzeugung von positionsunabhängigen Code, um sicherzustellen, für gemeinsam genutzte Bibliotheken benötigt. Die .o-Dateien sind normale Objektdateien, die in eine statische .a-Datei archiviert werden können. Die .lo Dateien sind Objektdateien mit positionsunabhängigen Code, der nun in eine .so-Datei verknüpft werden kann.

Bei der Verknüpfung libtool läuft ar eine statische Bibliothek oder ln erstellen, um die Objekte-Dateien in eine .so gemeinsam genutzte Bibliothek zu verbinden.

libtool kann auch die Bibliothek installieren, wenn mit dem --mode gewünschten = installieren.

Siehe http://www.gnu.org/software/libtool/manual /libtool.html für weitere Informationen .

Bitte beachten Sie, dass beim Bau eines ausführbaren gibt es immer zwei Stufen, Kompilieren und Linken.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top