[c++] Problème de compilation
Résolu
GafouZ
Messages postés
15
Statut
Membre
-
lirey83 Messages postés 76 Statut Membre -
lirey83 Messages postés 76 Statut Membre -
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 !
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
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
- ...
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
- ...