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

  FORUM HardWare.fr
  Programmation
  C++

  [C++] Aide à la création d'un makefile

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] Aide à la création d'un makefile

n°1499372
komper
Posté le 05-01-2007 à 15:15:16  profilanswer
 

Bonjour, j'ai besoin de créer un makefile pour un projet que je suis entrain de réaliser, cependant je ne comprend pas tout .
 
 
voila comment sont structurer mes fichiers qui sont au nombre de 4 :
dans le fichier "B_naval.cpp" j'ai inclus :
 
#include "jeux.cpp"
 
ensuite dans le fichier "jeux.cpp" j'ai inclus :
 
#include "flotte.cpp"
 
ensuite dans le fichier "flotte.cpp" j'ai inclus :
 
#include "Biblihoteque.h"
 
et voila donc la structure de mes fichiers :
 
maintenant j'aimerai pouvoir créer le makefile à partir de cela !
 
Merci d'avance pour vos réponses  ;)

mood
Publicité
Posté le 05-01-2007 à 15:15:16  profilanswer
 

n°1499380
franceso
Posté le 05-01-2007 à 15:25:24  profilanswer
 

commence par écrire les premières lignes de ton Makefile, pour apprendre. On t'aidera plus si tu essaies par toi même, si tu vois les difficultés et si tu nous poses des questions spécifiques.
 
Par exemple, commence par écrire la ligne qui te permet de compiler un .c en .o, et celle qui permet de faire l'édition de liens pour générer l'exécutable final.


---------------
TriScale innov
n°1499382
kadreg
profil: Utilisateur
Posté le 05-01-2007 à 15:26:37  profilanswer
 

komper a écrit :


#include "jeux.cpp"


 
eeeuuuhhhhhh ...............
 
tu as une vraie raison de faire ça ?

n°1499389
komper
Posté le 05-01-2007 à 15:37:56  profilanswer
 

voila ce que j'ai fait, j'ai modifié mes en-entêtes en remplaçant les .cpp par des .out
 
et j'ai essayer de créer le makefile suivant :
 

Code :
  1. B_naval.exe: B_naval.cpp
  2. g++ -o   B_naval.cpp
  3. jeux.out: jeux.cpp
  4. g++ -o  jeux.cpp
  5. flotte.out: flotte.cpp Biblihoteque.h
  6. g++ -o flotte.cpp


 
et voila l'erreur que me renvoi le compilateur:
 

Code :
  1. g++ -o   B_naval.cpp
  2. g++: no input files
  3. make: *** [B_naval.exe] Erreur 1


n°1499408
franceso
Posté le 05-01-2007 à 16:08:06  profilanswer
 

OK, c'est déjà un début...

 

avec g++, l'option -o sert à préciser le nom du fichier de sortie. Il faut donc préciser quelque chose derrière. Exemple:

g++ -o B_naval.exe B_naval.cpp

 

pour générer des fichiers objets, tu n'es pas obligé de préciser de fichier de sortie : g++ utilise construit un nom par défaut en remplaçant l'extension .c/.cpp par .o. Par contre, il faut préciser l'option -c pour ne demander que la compilation et pas l'édition de liens.

 

du coup, l'écriture correcte de ton bout de Makefile serait :

B_naval: B_naval.cpp
    g++ -o B_naval B_naval.cpp

 

jeux.o: jeux.cpp
    g++ -c jeux.cpp

 

flotte.o: flotte.cpp Bibliotheque.h
    g++ -c flotte.cpp

 

Mais reprends la structure de ton projet, car il doit y avoir un problème. Comme l'a souligné kadreg, on ne #include en général pas de fichiers .cpp (il faut de bonnes raisons pour le faire, et vu que tu as l'air d'être débutant, tu n'en as probablement pas)

 

En particulier, pose toi les questions suivantes :
Quel est le fichier qui contient la fonction main() ? de quels headers dépend-il ?
Quels sont les autres fichiers sources ? de quels headers dépendent ils ?


Message édité par franceso le 06-01-2007 à 14:19:58

---------------
TriScale innov
n°1499504
Ace17
Posté le 05-01-2007 à 18:46:28  profilanswer
 

komper a écrit :


#include "jeux.cpp"
...
#include "flotte.cpp"


Force 8 sur l'echelle de Goret ...

n°1507204
ChuckD
Posté le 25-01-2007 à 17:01:01  profilanswer
 

En fait, je crois que tu essaies de passer par analogie de la compilation d'un fichier
comme on a pu te l'enseigner dans tes cours, à la compilation d'un projet de plusieurs  
classes :  
 
Commence par écrire un fichier .h par classe, et inclue le dans chacun des .cpp correspondants
ou tu implémente les méthodes correspondantes.  
Ensuite inclue le fichier .h dans celui de la classe "de plus haut niveau", et ainsi jusqu'à ton main.
 
Non, parce que là, sans headers, tu cours au désastre.
 

n°1507218
0x90
Posté le 25-01-2007 à 17:33:29  profilanswer
 

Au passage, y'a des règles implicites dans make, faut s'en servir ça marche très bien :o
 

Spoiler :


for f in `find . -name '*.cpp'`;do  g++ -MM $f -MF Makefile ;done [:cupra]


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.

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

  [C++] Aide à la création d'un makefile

 

Sujets relatifs
[SQL Server 2000]Petite aide sur les procédures stockées[C] Des accolades "just pour le fun" ?
HELP création de 'n' boutonsCreation site d'enchere?
[PHP/SQL] Aide pour un siteAide pour installer une applet java...
aide pour un projet persoAide pour une débutante en javascript
aide sur la Videoconferenceprobleme creation de tables
Plus de sujets relatifs à : [C++] Aide à la création d'un makefile


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