LNK2005 error, * already difined in *.obj [Résolu]

Signaler
Messages postés
3
Date d'inscription
mercredi 2 mai 2012
Statut
Membre
Dernière intervention
2 mai 2012
-
Messages postés
3
Date d'inscription
mercredi 2 mai 2012
Statut
Membre
Dernière intervention
2 mai 2012
-
Bonjour,

Je n'arrive à compiler un projet C (VS2010, W7). Il y a un problème pendant la phase de link.

Voici une version simplifiée du code en quatre fichiers:

definitions.h
typedef int INT32;
const INT32 ELEMENT_SIZE = sizeof(INT32);

main.h
#include "definitions.h"

main.c
#include "main.h"

INT32 myFunction1(INT32 in)
{
return in;
}

file1.c
#include "main.h"
#include "definitions.h"

INT32 myFunction2(INT32 in)
{
return in;
}


Tel quel, j'ai l'erreur :
error LNK2005: _ELEMENT_SIZE already defined in main.obj

Si j'enlève le #include "definitions.h" dans file1.c (ce qui me paraittrait logique au final), il n'arrive pas à définir INT32.

J'avoues être sec...

Quelqu'un à une idée?


Merci d'avance!

3 réponses

Messages postés
3
Date d'inscription
mercredi 2 mai 2012
Statut
Membre
Dernière intervention
2 mai 2012

J'ai déclaré la variable ELEMENT_SIZE en static et ça fonctionne...

Désolé...
Messages postés
3819
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
28 septembre 2020
113
Bonjour.

Plusieurs choses (qui ne sont pas en rapport avec le problème soulevé, que tu as apparemment résolu):
1) Pense à utiliser les balises de code. C'est plus agréable de t'aider avec la coloration syntaxique.
2) Si une question trouve sa réponse, alors il faut cliquer sur "réponse accepter" (même si c'est toi qui te réponds, accepte ta propre réponse. Ça permet de regrouper les questions "résolues" et "en attente").
3) Au lieu de renommer par toi même, utilise plutôt <stdint.h> ! Il y a déjà dedans ce que tu essaies de renommer.
Si stdint.h n'est pas disponible avec ta version de Visual, tu peux le trouver ici: http://msinttypes.googlecode.com/svn/trunk/stdint.h

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
Messages postés
3
Date d'inscription
mercredi 2 mai 2012
Statut
Membre
Dernière intervention
2 mai 2012

Ok, bien noté!
Merci de ta réponse

Bonne journée