Je to textový soubor, který obsahuje popis knihovny.
Umožňuje libtool
vytvářet názvy nezávislé na platformě.
Například libfoo
přejde na:
Pod Linuxem:
/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
Pod Cygwin:
/lib/libfoo.dll.a # Import library
/lib/libfoo.a # Static library
/lib/libfoo.la # libtool library
/bin/cygfoo_1.dll # DLL
V systému Windows MinGW:
/lib/libfoo.dll.a # Import library
/lib/libfoo.a # Static library
/lib/libfoo.la # 'libtool' library
/bin/foo_1.dll # DLL
Takže libfoo.la
je jediný soubor, který je mezi platformami zachován pomocí libtool
umožňující pochopit, co se stane s:
- Závislosti knihovny
- Skutečné názvy souborů
- Verze a revize knihovny
Bez závislosti na konkrétní platformě implementace knihoven.
Podle http://blog.flameeyes.eu/2008/04/14/what-about-those-la-files jsou potřebné ke zpracování závislostí. Ale použití pkg-config může být lepší možnost:
V dokonalém světě by každá statická knihovna, která by potřebovala závislosti, měla svůj vlastní soubor .pc pro pkg-config a každý balíček, který by se na tuto knihovnu snažil staticky odkazovat, by používal pkg-config --static k tomu, aby knihovny propojil.
Našel jsem velmi dobré vysvětlení o souborech .la zdehttp://openbooks.sourceforge.net/books/wga/dealing-with-libraries.html
Shrnutí (Jak jsem to pochopil):Protože libtool interně pracuje se statickými a dynamickými knihovnami (prostřednictvím --diable-shared nebo --disable-static), vytváří obal na soubory knihoven, které vytváří. V prostředí podporovaném libtool se s nimi zachází jako se soubory binární knihovny.