titulo etiqueta ejemplos linux libraries libtool

linux - etiqueta - ¿Para qué es el archivo.la de libtool?



meta tags generator (3)

Encontré una muy buena explicación sobre los archivos .la aquí http://openbooks.sourceforge.net/books/wga/dealing-with-libraries.html

Resumen (La forma en que entendí): como libtool trata internamente bibliotecas estáticas y dinámicas (a través de --diable-shared o --disable-static) crea un contenedor en los archivos de biblioteca que crea. Se tratan como archivos de biblioteca binarios con el entorno compatible con libtool.

¿Para qué son los archivos .la de libtool? ¿Cómo se usan con un objeto compartido?


Es un archivo de texto que incluye una descripción de la biblioteca.

Permite a libtool crear nombres independientes de la plataforma.

Por ejemplo, libfoo va a:

En 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

Debajo de Cygwin :

/lib/libfoo.dll.a # Import library /lib/libfoo.a # Static library /lib/libfoo.la # libtool library /bin/cygfoo_1.dll # DLL

En Windows MinGW:

/lib/libfoo.dll.a # Import library /lib/libfoo.a # Static library /lib/libfoo.la # ''libtool'' library /bin/foo_1.dll # DLL

Así que libfoo.la es el único archivo que libfoo.la conserva entre las plataformas, lo que permite comprender qué ocurre con:

  • Dependencias de la biblioteca
  • Nombres de archivos reales
  • Versión y revisión de la biblioteca

Sin depender de una implementación de plataforma específica de bibliotecas.


Según http://blog.flameeyes.eu/2008/04/14/what-about-those-la-files , se necesitan para manejar dependencias. Pero usar pkg-config puede ser una mejor opción:

En un mundo perfecto, cada biblioteca estática que necesita dependencias tendrá su propio archivo .pc para pkg-config, y cada paquete que intente vincular estáticamente a esa biblioteca usará pkg-config --static para hacer que las bibliotecas se vinculen.