Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1921 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C++] problème de constructeur ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] problème de constructeur ?

n°1027149
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 28-03-2005 à 10:53:33  profilanswer
 

Bonjour à tous, j'ai ceci qui ne compile pas, et j'avoue que je ne comprends pas trop pourquoi  :??:  
 
Action.h

Code :
  1. #ifndef _ACTION_H_
  2. #define _ACTION_H_
  3. class Action {
  4.      public:
  5.          Action();
  6. };
  7. #endif


 
Action.cc

Code :
  1. #include "Action.h"
  2. #include <iostream>
  3. using namespace std;
  4. Action::Action() {
  5. }


 
Launcher.cc

Code :
  1. #include "Robot.h"
  2. #include <iostream>
  3. using namespace std;
  4. int main(void) {
  5.     Action action;
  6.     return 0;
  7. }


 
 
 
Résultat de la compilation :

Code :
  1. (10:52:50)-(xav@garfield)-(/home/xav/w/code) make
  2. g++ -Wall -o Launcher.o -c Launcher.cc
  3. g++ -Wall -o Launcher Launcher.o
  4. Launcher.o(.text+0x17): In function `main':
  5. : undefined reference to `Action::Action[in-charge]()'
  6. collect2: ld a retourné 1 code d'état d'exécution
  7. make: *** [Launcher] Erreur 1


 
Nb : Launcher include Robot.h qui include plusieurs .h dont Action.h


Message édité par Xavier_OM le 28-03-2005 à 10:54:56

---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
mood
Publicité
Posté le 28-03-2005 à 10:53:33  profilanswer
 

n°1027163
Lam's
Profil: bas.
Posté le 28-03-2005 à 11:16:29  profilanswer
 

T'as oublié de nous montrer ton makefile (c'est dedans qu'il y a l'erreur, vu que "Launcher" dépend de Launcher.o et Action.o).

n°1027187
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 28-03-2005 à 11:51:35  profilanswer
 

Mon makefile :

Code :
  1. # Config :
  2. #
  3. # Le compilateur
  4. CXX=g++
  5. CXXFLAGS=-Wall
  6. #
  7. # Les options de l'éditeur de lien
  8. LDFLAGS=-Wall
  9. #
  10. #
  11. #
  12. #
  13. # Build actions :
  14. #
  15. # Déjà on compile la _première_ dépendance
  16. # C'est à dire que si on a :
  17. #     toto.o: toto.cc toto.h
  18. # alors ca lancera la compilation de :
  19. #     toto.cc
  20. #
  21. COMPILE_CXX=$(CXX) $(CXXFLAGS) -o $@ -c $<
  22. #
  23. # Ensuite on fait l'édition de liens de toutes les dépendances
  24. LINK_CXX=$(CXX) $(LDFLAGS) -o $@ $^
  25. #
  26. #
  27. #
  28. #
  29. # Dépendances par défaut :
  30. #
  31. %.o: %.cc %.h
  32. $(COMPILE_CXX)
  33. # Cette règle ne se lancera pas s'il y a un fichier .cc et pas un .h
  34. #
  35. %.o: %.cc
  36. $(COMPILE_CXX)
  37. # Donc cette règle sera utilisée en l'absence de .h
  38. #
  39. #
  40. #
  41. #
  42. # Les cibles
  43. #
  44. default: all
  45. #
  46. all: Launcher
  47. #
  48. clean:
  49. $(RM) *.o
  50. $(RM) Launcher
  51. #
  52. #
  53. Launcher: Launcher.o
  54. $(LINK_CXX)
  55. #
  56. Launcher.o: Launcher.cc \
  57.             Robot.o EtatRobot.o \
  58.             ArretAVide.o ArretEnCharge.o MouvementAVide.o MouvementEnCharge.o \
  59.             Action.o
  60. Robot.o: Robot.cc Robot.h
  61. EtatRobot.o: EtatRobot.h
  62. ArretAVide.o: ArretAVide.cc ArretAVide.h
  63. ArretEnCharge.o: ArretEnCharge.cc ArretEnCharge.h
  64. MouvementAVide.o: MouvementAVide.cc MouvementAVide.h
  65. MouvementEnCharge.o: MouvementEnCharge.cc MouvementEnCharge.h
  66. Action.o : Action.cc


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°1027190
Lam's
Profil: bas.
Posté le 28-03-2005 à 11:53:16  profilanswer
 

Donc, c'est bien ce que je disais. La ligne 53 est fausse.

n°1027196
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 28-03-2005 à 11:57:09  profilanswer
 

En fait ce serait Launcher (et pas Launcher.o) qui dépendrait de tous les .o dont je vais utiliser les classes dans Launcher.cc ?
Je débute en c++ donc l'édition de liens c'est pas trop mon fort  :ange:  
 
Merci en tous cas pour ta réponse rapide  :jap:


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°1027203
Lam's
Profil: bas.
Posté le 28-03-2005 à 12:14:42  profilanswer
 

Euh, je vois pas comment être plus clair que ça:  :D  
 

Lam's a écrit :

"Launcher" dépend de Launcher.o et Action.o.


 

Lam's a écrit :

La ligne 53 est fausse.


Message édité par Lam's le 28-03-2005 à 12:15:09
n°1027205
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 28-03-2005 à 12:17:02  profilanswer
 

No pb, encore merci  :jap:


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C++] problème de constructeur ?

 

Sujets relatifs
[C] Problème avec les types de variables en C[SQL] Je sais pas comment formuler mon probleme !
Problème pour trier une dataviewFixer un menu (probleme en fonction de la resolution)
probleme de saisie avec cin.getline()Gros probleme format date, de l'aide !!!
[wxWidget] Problème avec EVT_CHAR[PHP] Probleme tout simple.
probleme de bbcodeProblème pour trier une dataview
Plus de sujets relatifs à : [C++] problème de constructeur ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR