2009-08-06 6 views

Antwort

120

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.

+3

so, wie Sie die .la-Datei auf eine Plattform-spezifische Shared Lib-Datei, wie libfoo.la drehen. -> libfoo.so * – theactiveactor

+4

Sie können‘ t libfoo.la enthält nur Metainformationen, dh in libfoo.la (Textdatei) wo soll man finden libfoo.so.xyz – Artyom

+4

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? –

7

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.

6

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.