[C con Clase] Duda código dividido en ficheros.

Jorge Vega Sanchez memmaker650 en gmail.com
Sab Mayo 15 09:59:52 CEST 2010


Vale. Bueno se me había olvidado que trabajo en entonro Linux/Unix,  
enc oncreto MAC.
Ya he seguido tus consejos y he quitado el fichero .h del comando de  
compilación.
El problema que tengo es que me salen error porque me dice que la  
librería que enlazo en mi programa es como si no estuviera visible. Es  
decir no ve los procedimientos definidos en la librería.

La librería está hecha por un amigo y he tenido que "instalar" a mano  
el fichero libxxx.a en /usr/local/lib/ y el fichero de cabecera en / 
usr/local/include/
Aquí hay otra peculiaridad. Mirando el fichero de cabecera de la  
librería tiene un #include "  " a otro fichero de cabecera (.h) que  
esta dentro del código fuente de la librería.
Aquí creo que tengo un problema porque al mover los ficheros libxxx.a  
y el .h ha cambiado la ruta al otro fichero de cabecera.
Mi duda es:
	- La ruta para que enlace el segundo fichero de cabecera basta con  
que sea "/Users/jorgevegasanchez/xxx/ yyy7cabecera.h" o primero debo  
salir de include, local y usr y ponerlo así  #include "../../../Users/ 
jorgevegasanchez/xxx/yyy/cabecera.h  ???

	- Si el fichero de cabecera de la librería enlaza con otro fichero de  
cabecera. Si copio el contenido de este segundo fichero de cabecera  
dentro del primero se supone que ya estará todos los métodos definidos  
y no hará falta enlazar nada más.

Porque sé supone segun tengo entendido que el fichero de cabecera lo  
que hace es definir los métodos que luego se desarrollan en el fichero  
libxxx.a, no hace falta tener nada más de la librería.


Ahora otra duda.

Las librerías hay que incluirlas en el compilado, en el linkado o en  
ambos ???

Espero haberlo explicado lo suficientemente bien, sé que es un poco  
farragoso.

Un saludo y gracias de antemano.

  On 15/05/2010, at 0:31, Reignerok wrote:

> Nunca he utilizado el compilador directamente, siempre a través de  
> entornos, pero creo recordar que leí algo de poner -l para que  
> enlazara las cabeceras. Trata de ponerle ese parámetro a ver si  
> resulta. Ah, y una cosa que no sé si tendrá algo que ver, pero las  
> cabeceras (headers) de C++ se suelen poner como *.hpp
>
> Un saludo!
>
> El 14 de mayo de 2010 21:22, Jorge Vega Sanchez  
> <memmaker650 en gmail.com> escribió:
> Estoy realizando un programa diviendo partes en ficheros y al  
> compilarlo me da error.
>
> Explico la estructura del programa porque la programación multi  
> fichero todavía no la entiendo del todo.
>
> 3 ficheros: prueba.cpp funciones.cpp y funciones.h
>
> - El programa usa una librería.
> -Prueba.cpp --> contiene el main del programa y un par de funciones.  
> Hace uso de la librería. Sólo esta incluido #include "funciones.h".  
> Definidas variables globales.
> -funciones.cpp -->  aquí hay varias funciones definidas que hacen  
> uso de la librería. Sólo está definido #include "funciones.h" y  
> extern variables globales.
> -funciones.h --> definidas todas las librerías y las cabeceras de  
> las funciones definidas en funciones.cpp.
>
> Para compilar sigo este orden: g++ funciones.cpp funciones.h  
> prueba.cpp -o prueba
>
> El problema es que no reconoce nada de la librería externa.
>
> Si alguien  pudiera ayudar incluso si cree alguna forma mejor de  
> distribuir el trabajo en los ficheros.
>
> Gracias de antemano.
> _______________________________________________
> 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
>
> _______________________________________________
> 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

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20100515/f0df890d/attachment.html>


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