matt1038
Messages postés3Date d'inscriptionmercredi 9 février 2011StatutMembreDernière intervention 9 février 2011
-
9 févr. 2011 à 12:34
matt1038
Messages postés3Date d'inscriptionmercredi 9 février 2011StatutMembreDernière intervention 9 février 2011
-
9 févr. 2011 à 17:34
Bonjour,
J'ai fait un petit programme de test avec son Makefile associé et je n'arrive pas à gérer les dépendances entre les fichiers .c et les fichiers .h
Dans mon programme, main.c dépend de hello.h donc j'ai ajouté la ligne suivante dans le Makefile:
main.o: hello.h
Lorsque je modifie hello.h et que je recompile, rien ne se passe car il estime qu'il n'y a aucune modification.
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023123 9 févr. 2011 à 15:53
Ok j'ai compris ce que tu voulais faire ! (Je n'ai pas compris tout de suite).
Si tu as besoin de faire de la dépendance avec les headers, tu peux utiliser gcc -MM qui génère une règle de dépendance directement au format Makefile ! (Exemple crade: gcc -MM *.c)
(Voire le configure, le Makefile et le src/Makefile)
________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfoliohttp://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023123 9 févr. 2011 à 14:23
Tu ne dépend pas de main.o, ce n'est pas ton problème ?
$(EXEC): $(OBJ) main.o
@$(CC) -o $@ $^ $(LDFLAGS)
________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfoliohttp://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
matt1038
Messages postés3Date d'inscriptionmercredi 9 février 2011StatutMembreDernière intervention 9 février 2011 9 févr. 2011 à 15:41
Merci pour ta réponse mais cela ne règle pas mon problème.
En effet, l'instruction "OBJ= $(SRC:.c=.o)" rempli OBJ avec tous les noms de fichier.c en les transformant en .o
Ainsi, OBJ contient main.o et hello.o
Je souhaiterais que lorsque je modifie hello.h, le fichier "main.c" (le hello.c également en fait, j'ai oublié de le mentionner) soit recompilé.
matt1038
Messages postés3Date d'inscriptionmercredi 9 février 2011StatutMembreDernière intervention 9 février 2011 9 févr. 2011 à 17:34
Ca marche!!
J'avais déjà essayé avec la méthode gcc -MM mais sans succès car il y avait une ou 2 erreurs dans mon Makefile.
J'ai enfin réussi grâce à ton exemple pour le mini-compilateur.