Antworten:
Es ist eine Textdatei, die eine Beschreibung der Bibliothek enthält.
Es ermöglicht libtool
die Erstellung plattformunabhängiger Namen.
Zum Beispiel libfoo
geht an:
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
Dies libfoo.la
ist die einzige Datei, die zwischen Plattformen aufbewahrt wird, indem libtool
verstanden wird, was passiert mit:
Ohne von einer bestimmten Plattform abhängig Implementierung von Bibliotheken.
libtool
, die Objektdateien zu verknüpfen ( gnu.org/software/libtool/manual/html_node/Using-Automake.html ), aber wenn ich eine Bibliothek ohne .la verteilen möchte, bedeutet dies, dass das Verknüpfen sehr schwierig sein wird mit Cygwin oder Mingw?
Laut http://blog.flameeyes.eu/2008/04/14/what-about-those-la-files werden sie benötigt, um mit Abhängigkeiten umzugehen. Die Verwendung von pkg-config ist jedoch möglicherweise eine bessere Option:
In einer perfekten Welt hätte jede statische Bibliothek, die Abhängigkeiten benötigt, eine eigene PC-Datei für pkg-config, und jedes Paket, das versucht, eine statische Verknüpfung zu dieser Bibliothek herzustellen, würde pkg-config --static verwenden, um die Bibliotheken zum Verknüpfen zu bringen.
Ich habe hier sehr gute Erklärungen zu .la-Dateien gefunden: http://openbooks.sourceforge.net/books/wga/dealing-with-libraries.html
Zusammenfassung (so wie ich es verstanden habe): Da libtool intern mit statischen und dynamischen Bibliotheken umgeht (über --diable-shared oder --disable-static), wird ein Wrapper für die von ihm erstellten Bibliotheksdateien erstellt. Sie werden als binäre Bibliotheksdateien in einer von libtool unterstützten Umgebung behandelt.