pagoda
Messages postés14Date d'inscriptionlundi 9 mars 2009StatutMembreDernière intervention17 décembre 2012
-
19 avril 2010 à 17:58
pagoda
Messages postés14Date d'inscriptionlundi 9 mars 2009StatutMembreDernière intervention17 décembre 2012
-
20 avril 2010 à 11:32
Bonjour, j'ai un souci sur un projet que je dois faire au plus vite, je dois faire un makefile permettant de créer un exécutable du projet, seulement voila mes sources sont organisées comme suit:
-le dossier de mon projet "ProjetC" contient le fichier Makefile et le dossier "sources"
-le dossier "sources" contient un sous-dossier "fichiers.c" et un sous-dossier "fichiers.h"
-pour faire un test j'ai mis dans le sous-dossier "fichiers.h" le fichier source "personnes.h" et dans le sous-dossier "fichiers.c" les fichiers "personnes.c" et "main.c" utilisant "personne.h"
-j'ai donc créer un Makefile permettant de créer un ficher exec des trois scripts "personnes.h", "personnes.c" et "main.c":
seulement quand j'exécute la commande "make -f ./Makefile"
on m'envoie comme message d'erreur: "make -f ./Makefile
make: *** Pas de règle pour fabriquer la cible « personnes.c », nécessaire pour « personnes.o ». Arrêt."
Je ne comprend pas trop ce que je dois faire car c'est la première fois que j'éssai de faire un makefile.
Est-ce quelqu'un pourrait m'apporter son aide ?
Merci d'avance.
cs_ghuysmans99
Messages postés3983Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention30 juin 201316 19 avril 2010 à 19:26
Place plutôt tes headers dans un répertoire nommé include (fais comme tout le monde). Logiquement un makefile comme ça devrait aller (utilise make all pour le lancer) :
pagoda
Messages postés14Date d'inscriptionlundi 9 mars 2009StatutMembreDernière intervention17 décembre 2012 19 avril 2010 à 19:42
Je viens de faire ce que tu m'as indiqué, le message suivant s'affiche:
gcc -c -Wall -ansi -o personnes.o ./sources/fichiers.c/personnes.c
gcc -c -Wall -ansi -o main.o ./sources/fichiers.c/main.c
gcc -o programme personnes.o main.o
chmod +x programme
make: Rien à faire pour « Makefile ».
Je ne sais pas si le fait qu'il m'affiche "make: Rien à faire pour « Makefile »." est normal toujours est-il que l'executable "programme" est crée et se lance correctement.
cs_ghuysmans99
Messages postés3983Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention30 juin 201316 19 avril 2010 à 20:19
Renomme comme je t'ai dis tes répertoires (un répertoire portant le nom du programme contenant les fichiers source et un sous-répertoire include contenant les headers) et place le makefile dans le répertoire du programme. Tu peux y ajouter le target clean qui te permettra de supprimer les fichiers objets :
pagoda
Messages postés14Date d'inscriptionlundi 9 mars 2009StatutMembreDernière intervention17 décembre 2012 19 avril 2010 à 21:42
Je viens de le faire, ça marche aussi quand le renomme les dossiers des .h en "headers". Je fait make -f ./Makefile et tout marche niquel.
Manque plus qu'un petit script shell et tout sera niquel
Merci encore.
Vous n’avez pas trouvé la réponse que vous recherchez ?
pagoda
Messages postés14Date d'inscriptionlundi 9 mars 2009StatutMembreDernière intervention17 décembre 2012 20 avril 2010 à 11:32
Je le sais bien. Seulement mes profs tiennent absolument à ce qu'on le nomme "headers". Pas besoin de chercher la logique quand il n'y en a pas
Mais c'est évident que quand j'irai bosser il y a certaines choses abérantes que j'oublierai fissa.