Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Problema con variables globales en C++

Estas en el tema de Problema con variables globales en C++ en el foro de C/C++ en Foros del Web. Hola a todos Tengo un problema para implementar variables globales que debo usar en todo el projecto, yo intento hacer esto: Globales.h struct Triangulo_Mapa{ ..... ...
  #1 (permalink)  
Antiguo 08/11/2008, 16:58
Avatar de Pinush  
Fecha de Ingreso: abril-2007
Mensajes: 12
Antigüedad: 17 años
Puntos: 0
Problema con variables globales en C++

Hola a todos
Tengo un problema para implementar variables globales que debo usar en todo el projecto, yo intento hacer esto:

Globales.h
struct Triangulo_Mapa{
.....
}
Triangulo_Mapa TM[100];

MD2model.cpp //I enter values to TM
#include "Globales.h"
TM[index] = valor;

main.cpp
#include Globales //To use TM
#include MD2model.h //I need to include this header
otravariable = TM[index];

Es decir quiero asignar valores a una variable desde un .cpp y usar los valores de esta variable en el archivo main, pero aparece este error

fatal error LNK1169: one or more multiply defined symbols found
error LNK2005: "struct Triangulo_Mapa * TM" (?TM@@3PAUTriangulo_Mapa@@A) already defined in main.obj MD2model.obj

muchas gracias
  #2 (permalink)  
Antiguo 08/11/2008, 17:25
 
Fecha de Ingreso: octubre-2008
Mensajes: 34
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Problema con variables globales en C++

Por el mensaje de error, parece que estás definiendo dos veces el arreglo TM[].
Te sugiero que tengas en cuenta la línea donde aparece el error, y buscar en
" main.obj MD2model.obj" dónde estás repitiendo la declaración.
NOTA: la línea donde aparece el error es aquella donde se esta presentando la duplicación.
  #3 (permalink)  
Antiguo 08/11/2008, 17:45
Avatar de Pinush  
Fecha de Ingreso: abril-2007
Mensajes: 12
Antigüedad: 17 años
Puntos: 0
Respuesta: Problema con variables globales en C++

Estoy declarandolo solo una vez en Globales.h, el mensaje de error no me da la línea donde se encuantra el error, parece ser un error de enlace o link pero hasta ahora no se como solucionarlo, a menos que alguien tenga otra forma de hacer uso de los tipos globales se los agradecere mucho.
  #4 (permalink)  
Antiguo 08/11/2008, 23:38
 
Fecha de Ingreso: octubre-2008
Mensajes: 34
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Problema con variables globales en C++

Lo que ocurre es que aunque no estés definiendo explicitamente el arreglo, lo incluyes por medio una librería (Ej #include "Globales.h") y luego estás incluyendo otro archivo que a su vez contiene el arreglo (puede ser el Globales.h) de manera que el sistema lo lee dos veces.

Parece un trabalenguas, pero si lo miras detenidamente, podrías encontrar la causa del problema

Última edición por IgnacioJavier; 09/11/2008 a las 00:23
  #5 (permalink)  
Antiguo 09/11/2008, 04:42
Avatar de Xinef  
Fecha de Ingreso: marzo-2007
Mensajes: 202
Antigüedad: 17 años, 1 mes
Puntos: 7
Respuesta: Problema con variables globales en C++

Como comenta Ignacio probablemente no estás haciendo uso de #ifndef en las declaraciones de cabecera.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:42.