C/Visual C - ¿Cuándo es necesarior linkar con librerías?

 
Vista:

¿Cuándo es necesarior linkar con librerías?

Publicado por Juan (2 intervenciones) el 21/05/2002 11:14:48
Cúando pongo en un programa #include<stdio.h> es poque voy a usar funciones de esa librería ¿no?. Pero sin embargo no lo diga al compilador (p.e gcc de linux) expresamente que linke con esa librería. ¿Qué ocurre ? ¿Es que el compilador linka siempre con ciertas librerías y no hay que desirselo expresamente?, Si es así, el linkar con librerías que puede ser que no uses ¿No es crear un ejecutable más grande sin necesidad?. Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:¿Cuándo es necesarior linkar con librerías?

Publicado por chuidiang (677 intervenciones) el 21/05/2002 18:37:02
Efectivamente, el compilador linka automáticamente con ciertas librerías.
El ejecutable no es más grande de lo necesario. En Unix sólo se carga en el ejecutable aquel cacho de libreria que utilizas. Es decir, si de stdio solo usas la funcion printf, no te va a cargar el código de scanf.

No estoy totalmente seguro, pero las librerias por defecto y dónde se encuentran se pueden controlar a base de variables de entorno y ficheros de configuración que andan por ahí perdidos. Por ejemplo, son importantes las variables LD_LIBRARYPÀTH o el fichero que no recuerdo donde anda y que se llama make.rules

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:¿Cuándo es necesarior linkar con librerías?

Publicado por Pablo (3 intervenciones) el 22/05/2002 04:15:14
Me parece que te equivocas porque no se carga solo el codigo de printf sino todo lo demas que haya en el mismo fichero objeto donde se encuentra la funcion dentro de la biblioteca, Sorry.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:¿Cuándo es necesarior linkar con librerías?

Publicado por chuidiang (677 intervenciones) el 22/05/2002 06:51:30
¿Cómo estás tan seguro?. Puede que tengas razón. Yo lo que sé es que el orden de las librerias al linkar es importante, puesto que no las carga completas y si pretendes usar una función de una libreria por la que ya ha pasado, no la encontrara.
Me explico, si libuno.a tiene la funcion uno() y libdos.a intenta usar uno(), al linkar en este orden
-luno -ldos
no linka, sin embargo, al revés, sí
-ldos -luno
El motivo es que de linuno.a no carga la función uno() asi por las buenas, alguien tiene que haberla pedido.
Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar