Entonces, ¿cómo convertir el archivo .la en un archivo lib compartido específico de la plataforma, como libfoo.la -> libfoo.so. *
theactiveactor el
66
No puede libfoo.la solo contiene metainformación, es decir, en libfoo.la (archivo de texto) escrito donde debería encontrar libfoo.so.xyz
Artyom
44
¿Significa que para generar el archivo .la, necesito usar libtool (por ejemplo, de automake)? Se puede confiar libtoolpara vincular los archivos de objeto ( gnu.org/software/libtool/manual/html_node/Using-Automake.html ) pero si quiero distribuir una biblioteca sin .la, significa que será muy difícil vincular con él usando Cygwin o mingw?
dma_k
En caso de que alguien quiera deshabilitar esta versión, puede usar -avoid-version en sus _la_LDFLAGS, en lugar de -version-info
En un mundo perfecto, cada biblioteca estática que necesite dependencias tendría su propio archivo .pc para pkg-config, y cada paquete que intente vincular estáticamente a esa biblioteca usaría pkg-config --static para que las bibliotecas se vinculen.
Resumen (tal como lo entendí): dado que libtool trata con bibliotecas estáticas y dinámicas internamente (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 un entorno compatible con libtool.
Respuestas:
Es un archivo de texto que incluye una descripción de la biblioteca.
Permite
libtool
crear nombres independientes de la plataforma.Por ejemplo,
libfoo
va a:Bajo Linux:
Debajo de Cygwin :
En Windows MinGW:
Entonces,
libfoo.la
es el único archivo que se conserva entre plataformas allibtool
permitir comprender lo que sucede con:Sin depender de una plataforma específica de implementación de bibliotecas.
fuente
libtool
para vincular los archivos de objeto ( gnu.org/software/libtool/manual/html_node/Using-Automake.html ) pero si quiero distribuir una biblioteca sin .la, significa que será muy difícil vincular con él usando Cygwin o mingw?De acuerdo con http://blog.flameeyes.eu/2008/04/14/what-about-those-la-files , son necesarios para manejar las dependencias. Pero usar pkg-config puede ser una mejor opción:
fuente
Encontré una muy buena explicación sobre los archivos .la aquí http://openbooks.sourceforge.net/books/wga/dealing-with-libraries.html
Resumen (tal como lo entendí): dado que libtool trata con bibliotecas estáticas y dinámicas internamente (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 un entorno compatible con libtool.
fuente