GNU/Linux >> Znalost Linux >  >> Linux

K čemu slouží soubor .la libtool?

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.


Linux
  1. Co jsou řídké soubory v Linuxu

  2. Jaké je dobré řešení pro označování souborů v linuxu?

  3. K čemu je Linux test – příkazový test?

  1. Jaké příkazy chybí ve vašem souboru bashrc?

  2. Jaký je výchozí soubor pro `hostname`?

  3. Jaké jsou důsledky pro výkon milionů souborů v moderním souborovém systému?

  1. Co znamená „rc“ v .bashrc?

  2. K čemu jsou Inody dobré?

  3. Co je to stránka mapovaná v paměti a anonymní stránka?