Iniciar sesión

Ver la versión completa : Ayuda con visual C - incluir .H en dos ficheros



the_goulin
23/08/2005, 15:43
Hola,

Tengo un problemilla... (que raro no?)

bueno, la cuestion es que estaba separando un programa varios archivos (.C .H) y algunas partes de este programa necesitan las mismas cabeceras, y como es normal el VC se me queja de que los metodos/variables ya estan definidos, si no recuerdo mal esto se solucionaba con #ifndef ... pero llevo un rato intentandolo y no hay manera

alguien me hecha un cable?

Linking...
cMalo.obj : error LNK2005: "unsigned short * gpsnakeb_Pal" (?gpsnakeb_Pal@@3PAGA) already defined in gpmain.obj
debug/16b_test.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.

Saludillos y gracias,
The_Goulin

Eskema
23/08/2005, 16:09
Supongo q sera estupida mi respuesta pero, ¿solo haciendo el include en cada fichero.c no basta? yo tenia entendido q desde cada fichero podias llamar a la cabecera

Aiken
23/08/2005, 16:24
#ifndef __PEPITOH
#define __PEPITOH

aqui tu codigo

#endif

Petiso
23/08/2005, 16:35
Aiker se me ha adelantado ......... :-p

Es la solución correcta.

the_goulin
23/08/2005, 16:47
pues sonara extraño pero sigo con el mismo error

gpmain.obj : error LNK2005: "unsigned short * gpsnakeb_Pal" (?gpsnakeb_Pal@@3PAGA) already defined in cMalo.obj
debug/16b_test.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.


:( no lo entiendo... alguna idea/sugerencia u lo que sea ?

Asias,
The_Goulin

Petiso
23/08/2005, 16:50
Busca por el codigo, que no tengas otra variable perdida ccn el mismo nombre declarada ........

Adios !

Uncanny
23/08/2005, 17:02
Supongo que lo único que tienes en esos archivos de cabeceras son las declaraciones de variables y prototipos de funciones que usas y defines luego en tus archivos fuente. Puede que no sea por esto pero si no lo has hecho prueba declarando como extern las declaraciones de las variables que tengas en los archivos de cabecera (los prototipos de las funciones no hace falta) solo las variables y a ver que pasa.

the_goulin
23/08/2005, 21:34
bueno, ya esta

lo tenia asi


main.cpp:

#include "a.h"
#include "b.b"

main()
{
etc...

a.h:
#include "b.h"


asi q he quitado el #include "a.h" del programa main.c y solucionado

Gracias a todos por la ayuda :)
Saludillos,
The_Goulin que sigue con su frogger :)