Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide Recherche
775 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Makefile et subdirs

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Makefile et subdirs

n°2113094
Buckfast
C’est moi qui t’rend nerveux?
Posté le 24-11-2011 à 14:34:26  profilanswer
 

Bonjour,
 
J'ai suivi quelques tutos sur les makefile et j'en suis arrivé jusque là :
 

Code :
  1. #
  2. # Variables:
  3. #
  4. CC = gcc
  5. BIN = pTar
  6. SRC = main.c
  7. OBJ = main.o
  8. #
  9. # Flags d'erreurs:
  10. #
  11. ERROR_CFLAGS = -Wall -W -pedantic
  12. #
  13. # Flags pour le compilateur:
  14. #
  15. GLIB_CFLAGS = $$(pkg-config --cflags glib-2.0)
  16. PANGO_CFLAGS = $$(pkg-config --cflags pango)
  17. GTK_CFLAGS = $$(pkg-config --cflags gtk+-2.0)
  18. CFLAGS = $(ERROR_FLAGS) $(GLIB_CFLAGS) $(PANGO_CFLAGS) $(GTK_CFLAGS)
  19. #
  20. # Flags pour l'editeur de liens:
  21. #
  22. GLIB_LDFLAGS = $$(pkg-config --libs glib-2.0)
  23. PANGO_LDFLAGS = $$(pkg-config --libs pango)
  24. GTK_LDFLAGS = $$(pkg-config --libs gtk+-2.0)
  25. LDFLAGS = $(ERROR_FLAGS) $(GLIB_LDFLAGS) $(PANGO_LDFLAGS) $(GTK_LDFLAGS)
  26. #
  27. # Construction du programme:
  28. #
  29. all: $(BIN)
  30. $(BIN): $(SRC)
  31. $(CC) $(CFLAGS) -c $(SRC)
  32. $(CC) $(LDFLAGS) -o $(BIN) $(OBJ)
  33. #
  34. # Nettoyage:
  35. #
  36. clean:
  37. rm -f *.o *~ core $(BIN)


 
Je me retrouve avec le code d'erreur suivant :
 

Citation :

main.o: In function `main':
main.c:(.text+0x67): undefined reference to `g_main'
collect2: ld a retourné 1 code d'état d'exécution
make: *** [pTar] Erreur 1


 
Mon projet est de la forme suivante :
 
[racine] un tas de *.c et *.h (visiblement pris en compte par mon makefile)
[./Graphique] un g_main.c et g_main.h appelés pour l'exécution du programme en graphique (utilisant GTK 2).
 
C'est visiblement ces derniers, situés dans un sous dossier qui posent problème !
Pourtant je pensais avoir bien généré automatiquement la liste des fichiers à compiler ...
Sachant que le projet compile très bien sous Code::Blocks il s'agit d'une erreur de makefile ...
Si des "pros" du makefile pouvaient m'aider, ça m’avancerait bien !
 
Merci  :jap:  


---------------
Yippee-Kay-Yay ! - Coucou, tu veux voir mes bytes ?
mood
Publicité
Posté le 24-11-2011 à 14:34:26  profilanswer
 

n°2113134
olivthill
Posté le 24-11-2011 à 17:03:12  profilanswer
 

ld, c'est l'éditeur de lien. Il met ensemble les ".o". Certains ".o" peuvent éventuellement se trouver dans des bibliothèques.
 
Où se trouve g_main.o ?

n°2113140
Buckfast
C’est moi qui t’rend nerveux?
Posté le 24-11-2011 à 17:35:59  profilanswer
 

g_main.c se trouve dans ./Graphique/g_main.c ... donc s'il va le chercher, il doit sans doute créer le *.o associé à cet endroit ?


---------------
Yippee-Kay-Yay ! - Coucou, tu veux voir mes bytes ?
n°2113150
gilou
Modérateur
It's the only NEET thing to do
Posté le 24-11-2011 à 18:24:16  profilanswer
 

Citation :

SRC = main.c et OBJ =  main.o

ça ne l'incite guère a aller compiler les autres fichiers .c, je pense.
A+,


---------------
I think you guys should really consider virtualizing the whole process and moving it to the cloud.
n°2113165
Buckfast
C’est moi qui t’rend nerveux?
Posté le 24-11-2011 à 20:04:08  profilanswer
 

Tu penses que ça passerait en remplaçant par un *.c et *.o ?


---------------
Yippee-Kay-Yay ! - Coucou, tu veux voir mes bytes ?
n°2113174
Un Program​meur
Posté le 24-11-2011 à 21:13:58  profilanswer
 

Buckfast a écrit :

Tu penses que ça passerait en remplaçant par un *.c et *.o ?


 
Pourquoi ça irait voir dans des répertoires?
 


---------------
The truth is rarely pure and never simple (Oscar Wilde)
n°2113182
Buckfast
C’est moi qui t’rend nerveux?
Posté le 24-11-2011 à 22:37:21  profilanswer
 

Un Programmeur a écrit :


 
Pourquoi ça irait voir dans des répertoires?
 


 
Tu propose quoi ? T'as une méthode simple et récursive pour tout explorer ?
Là je sèche un peu (ou alors c'est direct l'artillerie lourde mais bon ...).


---------------
Yippee-Kay-Yay ! - Coucou, tu veux voir mes bytes ?

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

  Makefile et subdirs

 

Sujets relatifs
makefile.vc[RESOLU] gtk compilation dans un makefile
[RESOLU] Problème de Makefile...Makefile et sous dossiers
[autotools] Makefile.am et recursivite[C++/Makefile] Compilation sous windows
[C++] Probleme de Makefile/linkageDéfinir un lot de variables dans un makefile
[Problème] Static linking dans un makefileCygwin makefile erreur
Plus de sujets relatifs à : Makefile et subdirs


Hit-Parade
Copyright © 1997-2012 Hardware.fr SARL / Groupe LDLC / LesNumeriques.com / Version anglaise du site: BeHardware