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.