begin process at 2012 05 29 14:33:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Linux

 > 

Autre

 > 

Problème création d'un makefile


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème création d'un makefile

lundi 19 avril 2010 à 17:58:55 | Problème création d'un makefile

pagoda


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":

Code C/C++ :
CFLAGS=-Wall -ansi

exec : personnes.o main.o
	gcc $(CFLAGS) -o personnes.o main.o
	
personnes.o: personnes.c
	gcc -c $(CFLAGS) ./sources/fichiers.c/personnes.c

main.o: main.c personnes.h
	gcc -c $(CFLAGS) ./sources/fichiers.c/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.
lundi 19 avril 2010 à 19:26:45 | Re : Problème création d'un makefile

ghuysmans99

Membre Club
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) :
Code :
CFLAGS = -Wall -ansi
OBJETS = personnes.o main.o

all: personnes.o main.o
	gcc -o programme $(OBJETS)
	chmod +x programme

personnes.o:
	gcc -c $(CFLAGS) -o personnes.o personnes.c

main.o:
	gcc -c $(CFLAGS) -o main.o main.c

---
VB.NET is good ... VB6 is better
lundi 19 avril 2010 à 19:42:16 | Re : Problème création d'un makefile

pagoda

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.

Je te remercie de ton aide
lundi 19 avril 2010 à 20:19:28 | Re : Problème création d'un makefile

ghuysmans99

Membre Club
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 :
Code :
clean:
	rm $(OBJETS)

---
VB.NET is good ... VB6 is better
lundi 19 avril 2010 à 21:42:46 | Re : Problème création d'un makefile

pagoda

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.
lundi 19 avril 2010 à 23:03:20 | Re : Problème création d'un makefile

ghuysmans99

Membre Club
Le nom communément utilisé est include. Autant faire comme les pros !
---
VB.NET is good ... VB6 is better
mardi 20 avril 2010 à 11:32:17 | Re : Problème création d'un makefile

pagoda

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.



Cette discussion est classée dans : dossier, fichiers, personnes, main, makefile


Répondre à ce message

Sujets en rapport avec ce message

Gestion des dépendances des fichiers headers dans un Makefile [ par matt1038 ] 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 fichi traiter des dossiers et des fichiers [ par mervat ] bonjour, je veux faire le meme traitement pour tous les fichiers d'un dossier, mais le dossier d'entrée a lui meme des dossiers de fichiers,j'ai réuss [Autotools] Compilation récursive [ par Hiestaa ] Bien le bonjour, Je suis en train d'apprendre à utiliser les autotools de GNU pour un projet relativement conséquent. Comme il est conseillé dans de petit problème avec un makefile [ par leatitiazelda ] Salut à tous, Voilà, j'ai réalisé un mini-client en ftp et je bloque au niveau du makefile,en effet j'ai des fichiers .h que j ai justement inclus da Lister les fichiers d'un dossier [ par Bebert251188 ] slt merci de m'aiderje voudrais savoir comment "lister tous les fichiers d'un dossier" , je sais pas si je m'exprime bien !cad que je voudrais une com traiter plusieurs fichiers dans un dossier [ par mervat ] bonjour, je veux faire les mêmes traitements pour chaque fichier d'un dossier, je vais donner un exemple pour que vous me comprenez plus: supposons qu Création d'une librairie à partir des .c et .h [ par RV2931 ] Bonjour,J'utilise actuellement une "librairie", ou plutôt ses sources .c et .h, et j'aurai voulus éviter d'inclure les 36 fichiers à chaque projet qui Fichier qui affiche dans la console tout les fichiers et dossier du lecteur C [ par kiitos ] Comment faire un fichier qui affiche dans la console tout les fichiers et dossier du lecteur C ? traitement successif de fichiers [ par zizofredj ] je veux lancer successivement le traitement de plusieurs instances contenues dans un même dossier. les résultats de chaque instance va être stocké dan créer un vecteur de termes à partir d'un dossier de fichiers texte [ par mervat ] bonjour, pour avoir une liste contenant les termes de tous les fichiers dans un dossier, j'ai écrit ce code. la liste que j'ai obtenue contient les te


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,749 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales