Was sind libtools .la
Dateien für? Wie werden sie mit einem gemeinsamen Objekt verwendet?Was sind libtools .la-Datei für?
Antwort
Es ist eine Textdatei, die eine Beschreibung der Bibliothek enthält.
Erlaubt libtool
, plattformunabhängige Namen zu erstellen.
Zum Beispiel geht libfoo
zu:
Unter Linux:
/lib/libfoo.so # Symlink to shared object
/lib/libfoo.so.1 # Symlink to shared object
/lib/libfoo.so.1.0.1 # Shared object
/lib/libfoo.a # Static library
/lib/libfoo.la # 'libtool' library
Unter Cygwin:
/lib/libfoo.dll.a # Import library
/lib/libfoo.a # Static library
/lib/libfoo.la # libtool library
/bin/cygfoo_1.dll # DLL
Unter Windows MinGW:
/lib/libfoo.dll.a # Import library
/lib/libfoo.a # Static library
/lib/libfoo.la # 'libtool' library
/bin/foo_1.dll # DLL
So libfoo.la
ist die einzige Datei, die zwischen den Plattformen von libtool
ermöglicht zu verstehen, was geschieht mit erhalten bleibt:
- Bibliothek Abhängigkeiten
- Tatsächliche Dateinamen
- Bibliothek Versions- und Revisions
Ohne je auf einer spezifischen Plattform-Implementierung von Bibliotheken.
so, wie Sie die .la-Datei auf eine Plattform-spezifische Shared Lib-Datei, wie libfoo.la drehen. -> libfoo.so * – theactiveactor
Sie können‘ t libfoo.la enthält nur Metainformationen, dh in libfoo.la (Textdatei) wo soll man finden libfoo.so.xyz – Artyom
Bedeutet es, dass ich, um eine .la-Datei zu erzeugen, libtool verwenden muss (zB von automake)) Man kann sich auf 'libtool' verlassen, um die Objektdateien zu verknüpfen (http://www.gnu.org/software/libtool/manual/html_node/Using-Automake.html), aber wenn ich eine Bibliothek ohne .la verteilen will, tut das Es bedeutet, dass es sehr schwierig sein wird, mit Cygwin oder mingw damit zu verbinden? –
Nach http://blog.flameeyes.eu/2008/04/14/what-about-those-la-files werden sie benötigt, um Abhängigkeiten zu behandeln. Aber der Einsatz von pkg-config kann eine bessere Option sein:
In einer perfekten Welt, jede statische Bibliothek Abhängigkeiten benötigen würde seine eigene .pc Datei für pkg-config hat, und jedes Paket versucht, eine Verknüpfung zu statisch zu dieser Bibliothek würde Verwenden Sie pkg-config --static, um die Bibliotheken zum Verknüpfen zu bringen.
fand ich sehr gute Erklärung über .la hier Dateien http://openbooks.sourceforge.net/books/wga/dealing-with-libraries.html
Zusammenfassung (So wie ich verstanden): Weil libtool beschäftigt sich mit statischen und dynamischen Bibliotheken intern (durch --diable-shared oder disable -static) erstellt es einen Wrapper für die Bibliotheksdateien, die er erstellt. Sie werden als binäre Bibliotheksdateien in einer von libtool unterstützten Umgebung behandelt.
Auch http://stackoverflow.com/q/12237282/632951 – Pacerier