cs_AlexMAN
Messages postés1536Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention24 mai 2009
-
21 févr. 2005 à 11:41
cs_AlexMAN
Messages postés1536Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention24 mai 2009
-
21 févr. 2005 à 20:45
Bonjour,
J'ai un petit souci : Mon projet utilise 2 fichiers sources *.cpp, et un fichier entete *.h qui contient toutes les variables communes aux 2 fichiers cpp (donc le fichier h est inclus dans les 2 fichiers sources.). Mais au moment du 'linkage', je recois ca :
8Card error LNK2005: _iSelCard déjà défini(e) dans main.obj
...
8Card fatal error LNK1169: un ou plusieurs symboles définis à différentes reprises ont été rencontrés
Dans mon .h, j'ai fait attention a bien mettre :
#ifndef _GLOBAL_H
#define _GLOBAL_H
...
#endif
Voila, si quelqu'un a une solution ;)
Merci d'avance.
+2(p - n)
A voir également:
"Build date" "php version 4.4.5" "server api" "php variables"
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 21 févr. 2005 à 11:58
le fait de mettre un .h entre #ifdef/#endif évite l'inclusion multiple pour la compilation d'un fichier source pris séparement. comme tu as 2 fichiers sources, il inclueront tous les 2 une seule fois le .h et donc à l'édition de lien, les varaibles sont en double.
=> ne pas mettre les variables globales dans les .h ou alors rajouter extern. Un des fichiers sources doit avoir la déclaration standard et les autres celle avec extern.
cs_AlexMAN
Messages postés1536Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention24 mai 20091 21 févr. 2005 à 12:31
Avec des extern, j'ai les mêmes erreurs, et je viens de m'apercevoir que pas toutes les variables 'redeclarées' a l'aide de extern sont dites 'Deja definies.'. Donc il y a une couille quelque part.
+2(p - n)
Vous n’avez pas trouvé la réponse que vous recherchez ?
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 21 févr. 2005 à 19:52
salut,
si dans un .cpp tu déclares extern int i; et dans l'autre tu déclares
int i; a priori il n'y aura pas d'erreurs. copie colle ton code et tes
erreurs si tu t'en sors pas.
cs_AlexMAN
Messages postés1536Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention24 mai 20091 21 févr. 2005 à 20:45
J'ai trouvé, je faisais un copier coller des variables globales, et il y avait toujours les initialisations de ces mm variables, ce qui explique l'erreur..Merci quand meme ;)