GNU/Linux >> Tutoriales Linux >  >> Linux

¿Para qué sirven los archivos .la de libtool?

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

Permite libtool para 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

Bajo Cygwin:

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

En MinGW de Windows:

/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 se conserva entre plataformas por libtool permitiendo entender lo que sucede con:

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

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


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

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


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 lo entendí):Debido a que libtool se ocupa internamente de 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 binaria con un entorno compatible con libtool.


Linux
  1. ¿Cuáles son los usos legítimos del comando "tocar"?

  2. ¿Qué son los archivos dispersos en Linux?

  3. ¿Cuál es una buena solución para el etiquetado de archivos en Linux?

  4. ¿Cuál es el archivo predeterminado para `hostname`?

  5. ¿Cuáles son las implicaciones de rendimiento para millones de archivos en un sistema de archivos moderno?

¿Qué es umask en Linux?

¿Qué es ZFS? ¿Por qué la gente está loca por eso?

¿Qué son los inodos en Linux?

¿Qué es una base de datos distribuida y para qué sirven los sistemas de datos distribuidos?

¿Qué es un archivo .sh?

¿Para qué sirve Linux test -a command test?