[c++] Problème de compilation

Résolu/Fermé
GafouZ Messages postés 15 Date d'inscription jeudi 22 mars 2007 Statut Membre Dernière intervention 26 octobre 2009 - 22 mars 2007 à 19:58
lirey83 Messages postés 75 Date d'inscription mardi 2 janvier 2007 Statut Membre Dernière intervention 18 août 2007 - 24 mars 2007 à 10:37
Bonsoir,

Désolé de demander encore votre aide mais j'ai enfin bien avancer dans mon projet et voilà que je retombe sur un problème....grrr !

Voilà le truc le projet que je voudrais rassembler contient:
2 Serveur TCP et leur .h
1 client et son .h
1 fichier de calcul RObuSimul.cpp et son .h
et RobuLAB.cpp qui contient mon main(int argv....

J'ai donc un make file:

all: essai
essai: RobuSimul.o ServeurTCP9988.o ServeurTCP9999.o ClientTCP.o Robulab.o
g++ -o essai RobuSimul.o Robulab.o ServeurTCP9988.o ServeurTCP9999.o ClientTCP.o

RobuSimul.o: RobuSimul.cpp RobuSimul.h
g++ -o RobuSimul.o -c RobuSimul.cpp -Wall -ansi

ServeurTCP9988.o: ServeurTCP9988.cpp ServeurTCP9988.h
g++ -o ServeurTCP9988.o -c ServeurTCP9988.cpp

ServeurTCP9999.o: ServeurTCP9999.cpp ServeurTCP9999.h
g++ -o ServeurTCP9999.o -c ServeurTCP9999.cpp

ClientTCP.o: ClientTCP.cpp ClientTCP.h
g++ -o ClientTCP.o -c ClientTCP.cpp

Robulab.o: Robulab.cpp
g++ -o Robulab.o -c Robulab.cpp -Wall -ansi

Et quand je compil le tout il me dit :

$ make
g++ -o Robulab.o -c Robulab.cpp -Wall -ansi
RobuSimul.h:41: error: conflicting declaration ‘typedef struct LAB80FeedbackStruct LAB80FeedbackStruct’
RobuSimul.h:41: error: ‘LAB80FeedbackStruct’ has a previous declaration as ‘typedef struct LAB80FeedbackStruct LAB80FeedbackStruct’
RobuSimul.h:79: error: conflicting declaration ‘typedef struct Coordonnees Coordonnees’
RobuSimul.h:79: error: ‘Coordonnees’ has a previous declaration as ‘typedef struct Coordonnees Coordonnees’
RobuSimul.h:81: error: redefinition of ‘class RobuSimul’
RobuSimul.h:82: error: previous definition of ‘class RobuSimul’
RobuSimul.h:41: error: conflicting declaration ‘typedef struct LAB80FeedbackStruct LAB80FeedbackStruct’
RobuSimul.h:41: error: ‘LAB80FeedbackStruct’ has a previous declaration as ‘typedef struct LAB80FeedbackStruct LAB80FeedbackStruct’
RobuSimul.h:79: error: conflicting declaration ‘typedef struct Coordonnees Coordonnees’
RobuSimul.h:79: error: ‘Coordonnees’ has a previous declaration as ‘typedef struct Coordonnees Coordonnees’
RobuSimul.h:81: error: redefinition of ‘class RobuSimul’
RobuSimul.h:82: error: previous definition of ‘class RobuSimul’
RobuSimul.h:41: error: conflicting declaration ‘typedef struct LAB80FeedbackStruct LAB80FeedbackStruct’
RobuSimul.h:41: error: ‘LAB80FeedbackStruct’ has a previous declaration as ‘typedef struct LAB80FeedbackStruct LAB80FeedbackStruct’
RobuSimul.h:79: error: conflicting declaration ‘typedef struct Coordonnees Coordonnees’
RobuSimul.h:79: error: ‘Coordonnees’ has a previous declaration as ‘typedef struct Coordonnees Coordonnees’
RobuSimul.h:81: error: redefinition of ‘class RobuSimul’
RobuSimul.h:82: error: previous definition of ‘class RobuSimul’
Robulab.cpp: In function ‘int main(int, char**)’:
Robulab.cpp:28: error: ‘Serv9988’ was not declared in this scope
Robulab.cpp:29: error: ‘Serv9999’ was not declared in this scope
Robulab.cpp:30: error: ‘Client’ was not declared in this scope
make: *** [Robulab.o] Erreur 1

Mais voilà j'ai beau cherché je vois pas pourquoi il me dit confilcting Déclaration je n'est déclaré mes fonction que dans le point .h.
Ce que je fai dans mon main c'est créer un objet de la classe!

A quoi peut correspondre "conflicting declaration"?
Merci beaucoup !

1 réponse

lirey83 Messages postés 75 Date d'inscription mardi 2 janvier 2007 Statut Membre Dernière intervention 18 août 2007 13
24 mars 2007 à 10:37
Salut,

Le message d'erreur semble clair : redéclaration de LAB80FeedbackStruct.
Plusieurs causes possibles :
- utilisation de ton .h dans plusieurs unitées sans avoir mis de define pour éviter les inclusions multiples, du genre :
#ifndef toto
#define toto
.... le contenu de ton fichier h
#endif
- pas de namespace : cela permet de restreindre la portée des objets
- erreur dans l'utilisation de ta structure
- ...
5