ayuda gcc

Horst von Brand vonbrand en inf.utfsm.cl
Vie Oct 8 10:18:58 CLT 2004


"Roberto Leiva M" <rlm en floresinternacional.cl> dijo:
> Aca falta alguien...
> > El Thu, Oct 07, 2004 at 05:25:17PM -0700, Roberto Leiva M escribio:
> >> el problema es que no es un unico archivo ( lo que coloque es solo un
> >> ejemplo ),
> >> la aplicacion real tiene muchas librerias y/o archivos .o

> > Bueno, mal ejemplo entonces, no corresponde a lo que quieres!

> >> gcc correo.c -g -o correo -I$HB_INC_INSTALL -L$HB_LIB_INSTALL coordina.o
> >> $lib/cconv.o $menu/menu_acc.o $lib/ext.o $menu/rut_gral.o $menu/menu_tab.o
> >> $menu/menu_rut.o $menu/menu_rep.o $menu/menu_gen.o $MEDDIR/noautlog.o
> >> $MEDDIR/medntx.a
> >> $MEDDIR/cmnnet32.a        /// etc etc  ...
> >>
> >> esta aplicacion la necesito como una app primaria ( se ejecuta por si
> >> misma), y ademas necesito enlazarla a otras aplicaciones ( como modulo ),
> >> por eso necesito el .o

Hay muchos .o aca

> > Un archivo ".o" (object file, supongo que puede traducirse como
> > un archivo `objeto'), corresponde a una sola unidad de compilación
> > (en tu caso, el resultado de compilar un solo ".c"). No puedes
> > juntar varios.

Si se puede. ld(1)

> > Por eso tu error:

En parte.

> >> si trato de crear 1ero el .o me reclama diciendo que no es posible con
> >> multiples archivos.

> > Parece que lo que quieres entonces no es generar un ".o", sino una
> > biblioteca estática, que no es más que un conjunto de archivos ".o"
> > pegados,

No estan pegados, realmente. Es una coleccion de .o (+ indice), del cual al
enlazar el linker (ld(1)) extrae solo los .o que necesita para resolver las
referencias.

> >          formando un archivo cuya extención en UNIX suele ser ".a".

> > Mira el comando "ar".

> este comando, al crear la libreria tb realiza los enlaces que poseen los 
> archivos entre si?

No.

> por ejemplo si yo llamo una funcion y esta funcion realiza una llamada a
> otro procedimiento ( que esta en otro archivo guardado en la lib ) ,
> ocurre algun error ?

No, al enlazar se resuelven las referencias.
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                     Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria              +56 32 654239
Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513


Más información sobre la lista de distribución Linux