[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]
[Hilos de Discusión] [Fecha] [Tema] [Autor]On Tue, 22 Feb 2000, Fito wrote: > > Hola lista !!!! > > Tengo una pregunta si quiero crear un archivo .so (una biblioteca) > es sencillo no ?? Si. > namas le das al compilar: > > gcc -shared -o libalgo.so algo.c Preguntas o afirmas? Por princio de cuentas hay dos tipos de bibliotecas, estáticas y dinámicas. Las primeras tendran terminación .a y las segundas, para cumplir con todas las reglas terminación .so.X.Y.Z (X.Y.Z es la versión). En ambos casos y para el el linker las encuentre, el nombre empezará con 'lib'. En ambos casos necesitas tener una serie de archivos objeto, con terminación .o con tus fuentes (.c) compilados. La única diferencia al compilar es que para las bibliotecas dinámicas requieres incluir la bandera -fPIC, por ejemplo: gcc -c -fPIC -o algo.o algo.c Nota que la salida 'algo.o' no es aún una biblioteca, es sólo codigo objeto. _Ya teniendo_ tus objetos procedes a crear la biblioteca, en el caso de las estáticas lo haces con ar(1) y en el caso de las dinámicas lo haces con el mismo gcc(1) (en estricto sentido lo haces con ld(1), pero esa es otra historia), efectivamente usando -shared, por ejemplo: gcc -shared -o libalgos.so algo.o ... Notarás que en el ejemplo no le puse número de versión para mantenerlo simple: en ld(1) encuentras más información sobre el 'soname'. Respecto a las biblioteca estáticas, muchos Unixes requieren post-procesarla con ranlib(1), en Linux, en cambio, no es necesario. Por último, existe 'GNU libtool' que es una herramienta que facilita el desarrollo de bibliotecas dinámicas. Las estáticas son triviales ;-) Saludos Salvador Ortiz -- Para desuscribirse, mande correo a: ayuda-unsubscribe en linux org mx Para comandos adicionales, envíelo a: ayuda-help en linux org mx