cs_Dalamar
Messages postés63Date d'inscriptionsamedi 22 décembre 2001StatutMembreDernière intervention22 décembre 2003
-
27 avril 2003 à 16:09
cs_bouba
Messages postés518Date d'inscriptiondimanche 2 décembre 2001StatutMembreDernière intervention10 novembre 2007
-
28 avril 2003 à 07:44
Je travaille sur un petit jeu et j,ai plusieurs fichiers .h. Je suis obligé d'en inclure plusieurs dans les autres fichiers, bref, chaque fichier dépend d'autres (tout est mélangé). Quand je veux compiler, j,ai plein d'erreurs "redefinition of xxx class". Comment je peux régler ce problème? Merci
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 27 avril 2003 à 16:27
Fais exactement ce qui est mis.
Si tu as une classe "ducon" alors le .h
tout en haut
#ifndef DUCON_H
#define DUCON_H
// reste du fichier
// lignes definition de classe
tout en bas
#endif
BruNews, ciao...
cs_bouba
Messages postés518Date d'inscriptiondimanche 2 décembre 2001StatutMembreDernière intervention10 novembre 20073 27 avril 2003 à 20:32
hum, les truc du genre
#ifndef ....
#define ...
sont qu'assez rarement indispensable, c'est d'ailleur assez souvent utilisé a tord a mon avis et est même des fois signe d'un programmation peut organisée.
La solution pour résoudre ce problème et de créer un makefile, je pense que l'on devrait toujours utiliser un makefile pour les projet possedant plus d'un fichier. Il évitera les problème de dépendances et les redéfinition, avec lui pas desoins de faire pleins de #ifndef ....
#define ... qui alourdissent le code (en général).
Pour programmer proprement utilise les .h pour y mettre la déclaration de tes classes, et le .cpp pour définir les différentes fonctions.
Si tu ne sais pas comment procéder pour faire un makefile réponds a ce msg.
Alé, bonne prog.
A+.
Bouba
Vous n’avez pas trouvé la réponse que vous recherchez ?
Bon, alors la ligne 6 compile Premier.cpp, la ligne 6 indique ces dépendances, c'est a dire que pour compiler on a besoins de Premier.cpp et Premier.h. Si par exemple on avait une autre classe Second et que premier.h aurait un #include "Second.h" dans son fichier on aurait ceci
(Bien sur il faudra remplacer bcc32 par le nom de ton compilateur, l'option -c change peut-être aussi)
Voila, pour le main en général (à la ligne 3) on met tous les .h car il inclue par l'intermédiaire des autres fichiers les autres .h.
L'avantage du Makefile est qu'il ne va pas recompiler tout le code mais seulement celui qui change, ce qui va permettre d'aller plus vite.
Tu peux ajouter des commande du DOS (sous Win) et Unix (sous Unix)
par exemple on rajoute
8. clean:
9. rm *.o // efface tous les .o sous UNIX
et en faisant "make clean" ca fé l'oppération souhaité.
Ca a aussi un avantage, ca évite d'avoir a retaper tout une ligne qui indique la compilation du prog.
Bon ton fichier doit s'appeler "makefile" et pour le lancer on fait "make" ou bien il prend un autre nom et pour le lancer on fait "make Nomfichier" mais je suis plus trop sur pour ca.
Si tu as encore des problèmes indique moi kel est le compilateur que tu utilises et envoi moi le code source, je te renverrai peut-être le makefile (si je conné un peut ton compilo).