[C con Clase] parametro -l

ALEX HUAMANI rat_9998 en hotmail.com
Lun Abr 12 06:03:48 CEST 2010



 

> Date: Fri, 9 Apr 2010 13:20:00 -0400
> From: srd4121 en njit.edu
> To: cconclase en listas.conclase.net
> Subject: Re: [C con Clase] parametro -l
> 
> Hola Hallowin,
> 
> halowin wrote:
> > 
> > Gracias por contestar pero creo que sigo sin entenderlo. Vamos a ver:
> > 
> > Está claro que la libreria contiene el codigo binario.
> > 
> > Si yo quiero usar un "printf" he de poner un 
> > #include <stdio>
> > si no no funciona, pero si quiero usar un seno o coseno he de linkar
> > con -lm; entoces deduzco que en stdio.h aparte de la definición de
> > printf hay algo mas y en segundo lugar, por que no puedo poner un
> > #include <math.h>
> > para usar el seno y coseno por la misma regla de tres y he de poner
> > el -lm.
> > 
> 
> Veamos. Si quieres usar 'printf()', debes #incluir <stdio.h>, en C, o 
> <cstdio>, en C++. Esto no significa que no exista una biblioteca con la 
> definición de 'printf()'. Lo que pasa es que al tratarse de una función 
> estándar, la biblioteca estándar implícitamente es enlazado por el 
> enlazador.
> 
> En el caso, de las funciones 'sin()' y 'cos()', debes #incluir <math.h> 
> (o <cmath>, en C++). Ahora bien, aunque estas funciones sean estándares, 
> varios compiladores apartaron estas funciones matemáticas de las demás, 
> creando dos bibliotecas. La biblioteca matemática no es enlazado 
> implícitamente, y por eso debemos ser explícitos para esos compiladores.
> 
> Nada de esto cambia el mecanismo que usa el compilador y enlazador. Si 
> quieres usar una función contenida en una biblioteca debes tener un 
> fichero de cabecera para el compilador de C++ y otro fichero de la 
> biblioteca (".a", ".lib") o incluso el fichero objeto (".o", ".obj") 
> para el enlazador.
> 
> Por ejemplo, si queremos usar las funciones 'CargarBMP()' y 
> 'MostrarBMP()' en nuestro programa, no podemos hacer esto:
> 
> // prog.cpp
> 
> #include <cstdlib>
> 
> int main()
> {
> Imagen alfombra = CargarBMP( "alfombra.bmp" );
> MostrarBMP( alfombra );
> 
> std::system( "pause" );
> return 0;
> }
> 
> El compilador se quejará porque no sabe qué es 'Imagen', ni 
> 'CargarBMP()', ni 'MostrarBMP()'. No tiene las declaraciones de estas 
> entidades. No sabe si 'CargarBMP' es una tipo o una función, ni tampoco 
> sabe cuántos parámetros requiere, ni sus tipos, ni el tipo de retorno.
> 
> Por ello, necesita un fichero de cabecera. Por ejemplo,
> 
> // bmp.h
> 
> struct Imagen
> {
> unsigned long int altura;
> unsigned long int anchura;
> unsigned long int profundidad;
> unsigned char *paleta;
> unsigned char *pixeles;
> };
> 
> Imagen CargarBMP( const char * );
> void MostrarBMP( Imagen );
> 
> 
> // prog.cpp
> 
> #include <cstdlib>
> #include "bmp.h"
> 
> int main()
> {
> Imagen alfombra = CargarBMP( "alfombra.bmp" );
> MostrarBMP( alfombra );
> 
> std::system( "pause" );
> return 0;
> }
> 
> Ahora el compilador sabe perfectamente qué son las entidades que usas y 
> cómo se usan sintáctica y correctamente.
> 
> Obviamente, necesitamos las implementaciones de las funciones, pero el 
> compilador no las requiere; el enlazador sí. Al enlazar, necesitamos la 
> biblioteca o fichero objeto que contenga las definiciones de estas 
> funciones.
> 
> 
> Espero haber aclarado la duda.
> 
> Steven
> 
> 
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
alguien me puede ayudar con funcion graphics.h

necesito que alguien me ayude para crear un sistema planetario en 3D, noce si hacerlo con matrices o lado por lado

ademas necesito darle giro al elipsoide.. una orientacion, posteriormente les mando mi avance..
 		 	   		  
_________________________________________________________________
Aprende los trucos de Windows 7 con la gente que ya lo han probado Windows 7.
http://www.sietesunpueblodeexpertos.com/index_windows7.html
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20100412/0f38bffb/attachment.html>


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