[C] Petit prob quand je compile :/ besoin d'aide

Petit prob quand je compile :/ besoin d'aide [C] - C++ - Programmation

Marsh Posté le 17-12-2002 à 18:05:06    

voila , je dois réalisé un projet sous en C
 
je le compile sous Visaul Studio Pro 6
 
et voila ce que ca me mets
 
rincipal.obj : error LNK2005: "struct symbole *  tdsym" (?tdsym@@3PAUsymbole@@A) already defined in syntaxe.obj
 
generation.obj : error LNK2001: unresolved external symbol "int  correction" (?correction@@3HA)
 
ce sont les deux erreurs qui reviennent plusieurs fois
est ce que vous pouvez m'en dire un peu plus la dessus ?
 

Reply

Marsh Posté le 17-12-2002 à 18:05:06   

Reply

Marsh Posté le 17-12-2002 à 18:14:44    

>> rincipal.obj : error LNK2005: "struct symbole *  tdsym" (?tdsym@@3PAUsymbole@@A) already defined in syntaxe.obj
 
tdsym est défini dans un .h, ou dans plusieurs fichiers.  
 
>> generation.obj : error LNK2001: unresolved external symbol "int  correction" (?correction@@3HA)
 
correction n'est défini que comme extern.
 
//
 
pour utiliser une variable globale dans plusieurs fichiers, il faut la définir à un seul endroit dans un fichier C (dire au compilo : réserve de l'espace pour la variable). pour l'utiliser dans les autres, il faut la marquer comme définie ailleurs avec 'extern' (dire au linker : cette variable est définie ailleurs. le linker va chercher son emplacement et remplacer dans la source les références à la variable par son véritable emplacement mémoire).
 
donc :
 
globals.c
 
symbole* tdsym;
int correction;
 
globals.h
 
extern symbole* tdsym;
extern int correction;
 
et tu inclus globals.h là où tu as besoin d'utiliser tes variables.

Reply

Marsh Posté le 17-12-2002 à 20:03:33    

thx, ca marche maintenant :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed