LNK2005 error, * already difined in *.obj

Résolu
NotoDavid Messages postés 3 Date d'inscription mercredi 2 mai 2012 Statut Membre Dernière intervention 2 mai 2012 - 2 mai 2012 à 10:54
NotoDavid Messages postés 3 Date d'inscription mercredi 2 mai 2012 Statut Membre Dernière intervention 2 mai 2012 - 2 mai 2012 à 13:19
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

NotoDavid Messages postés 3 Date d'inscription mercredi 2 mai 2012 Statut Membre Dernière intervention 2 mai 2012
2 mai 2012 à 11:20
J'ai déclaré la variable ELEMENT_SIZE en static et ça fonctionne...

Désolé...
3
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
2 mai 2012 à 12:52
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
0
NotoDavid Messages postés 3 Date d'inscription mercredi 2 mai 2012 Statut Membre Dernière intervention 2 mai 2012
2 mai 2012 à 13:19
Ok, bien noté!
Merci de ta réponse

Bonne journée
0
Rejoignez-nous