C/Visual C - ...Enlazando con gcc...

 
Vista:

...Enlazando con gcc...

Publicado por Ronald (3 intervenciones) el 03/02/2008 00:06:47
Hola a todos.

Estaba investigando sobre compilacion separada. Para probar creo una libreria y la compilo. Luego creo una aplicacion que hace referencia a la libreria y sale el error "no se encuentra el archivo o directorio".
Aqui esta mi codigo:

/******Mensaje.h******/
void mostrarMensaje();

/******Mensaje.cpp******/
#include <iostream>
#include "Mensaje.h"
void mostrarMensaje()
{
std::cout << "..HOLA MUNDO.. " ;
}

Con esto genero la libreria (en consola):
g++ Mensaje.cpp -c
ar rcs libmensaje.a Mensaje.o

Hasta aqui todo ok. Ahora copio la libreria "libmensaje.a" en la carpeta donde esta mi aplicacion, el cual tiene este codigo:

/******Principal.cpp******/
#include "Mensaje.h"
int main()
{
mostrarMensaje();
return 0;
}

Trato de compilar mi aplicacion enlazando de forma estatica con la libreria (en consola):
g++ -static Principal.cpp -L. -lmensaje -o ejecutable

es aqui donde sale el error de que no encuentra "Mensaje.h". Alguien tiene alguna idea que puede ser el problema?. He leido varios manuales y todos lo hacen de forma similar.

Espero sus respuestas. 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:...Enlazando con gcc...

Publicado por Tom (619 intervenciones) el 04/02/2008 09:54:21
Te falta especificar la opción -I (similar a la -L) para indicar dónde buscar ficheros de cabecera.
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:...Enlazando con gcc...

Publicado por Ronald (3 intervenciones) el 04/02/2008 16:04:51
Gracias Tom.

Pues si, incluyendo la direccion de los .h compila correctamente. Aunque no estoy del todo satisfecho.

Pense que al compilar mi libreria ya no necesitaria de los archivos fuente y de cabecera para enlazar con cualquier aplicacion que use la libreria. Algo parecido a las dll de windows. ¿o las dll tambien necesitan de los ficheros de cabecera?

Sabes algo sobre este tema?

Saludos...
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:...Enlazando con gcc...

Publicado por Trebuchetino (28 intervenciones) el 05/02/2008 11:04:28
Pues no es que esté muy seguro, puesto que nunca he programado con librerias...pero que yo sepa, para compilar sí son necesarios los archivos de cabecera. Después para ejecutar el programa ya no son necesarios y te llega con la libreria sola.
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:...Enlazando con gcc...

Publicado por Ronald (3 intervenciones) el 06/02/2008 14:51:48
Entonces no se puede lo que yo pretendia.

Lo que queria lograr (no se si se puede) era tener una librería compilada y luego enlazarla con una aplicacion en delphi por ejemplo. ¿es esto posible?

En caso de que no se pueda al momento de compilar, esto se puede lograr una vez que ya este compilada?, osea solo se enlace con la libreria al momento de ejecucion aunque sean de lenguajes diferentes.

Ok, son varias dudas, pero como estoy investigando por mi cuenta no hay quien me lo aclare.

Saludos...
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:...Enlazando con gcc...

Publicado por Tom (619 intervenciones) el 07/02/2008 19:10:24
No hay nada genérico que funcione como tú quieres.

Si necesitas linkar una .dll que has hecho en c++ desde un programa en Delphi, deberás buscar en la documentación de delphi para ver si esto es posible. Así para cualquier otro lenguaje que se te ocurra.
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