Pages : 1
#1 Le 26/08/2013, à 08:48
- Blur
[résolu] Makefile
Bonjour à tous,
Voila voila j'aurai aimée savoir comment on utilise Makefile pour compiler une librairie libft.a.
mercii ;-)
Dernière modification par Blur (Le 26/08/2013, à 10:35)
Hors ligne
#2 Le 26/08/2013, à 09:27
- tiramiseb
Re : [résolu] Makefile
Salut,
Ça dépend des projets...
Souvent il faut simplement faire :
./configure
make
make install
Mais ça dépend vraiment du projet sur lequel tu travailles, comment il est foutu, ce que tu veux faire précisément, etc.
Cette bibliothèque "libft", tu l'as prise où ?
Peut-on voit à quoi ça ressemble, l'archive que tu as récupérée ?
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#3 Le 26/08/2013, à 09:52
- Blur
Re : [résolu] Makefile
salut et merci de t’intéresser à mon problème.
voila ce que j'ai faite jusqu'à présent. je dois utiliser les regle fclean clean re et all le truc c'est que je sais pas encore quoi mettre dedans
1 all: ft_putchar.o ft_putstr.o ft_strcmp.o ftstrlen.o ft_swap.o
2 gcc ft_putchar.o ft_putstr.o ft_strcmp.o ftstrlen.o ft_swap.o -o libcomp
3
4 ft_putchar.o: ft_putchar.c
5 gcc -o ft_putchar.o -c ft_putchar.c
6
7 ft_putstr.o: ft_putstr.c
8 gcc -o ft_putstr.o -c ft_putstr.c
9
10 ft_strcmp.o: ft_strcmp.c
11 gcc -o ft_strcmp.o -c ft_strcmp.c
12
13 ft_strlen.o: ft_strlen.c
14 gcc -o ft_strlen.o -c ft_strlen.c
15 ft_swap.o: ft_swap.c
16 gcc -o swap.o -c ft_swap.c
17
18 clean:
19 rm -rf *.o
20 fclean:
21 re:
22
Hors ligne
#4 Le 26/08/2013, à 09:56
- tiramiseb
Re : [résolu] Makefile
Bon, vu que tu n'as pas répondu clairement à mes questions, je vais essayer de deviner.
Je vais essayer de deviner que c'est le contenu du fichier Makefile.
Je vais aussi essayer de deviner que les numéros de ligne ne sont pas dans le fichier mais que c'est juste pour la présentation que tu les montres.
Je vais aussi essayer de deviner que c'est un Makefile qui est dans l'archive que tu as récupérée et qu'il est bien foutu.
Donc, pour utiliser le contenu d'un fichier Makefile, tu exécutes simplement "make" suivi des règles.
Par exemple :
make clean
make all
Les règles "fclean" et "re" (qui sont en fait la même règle) sont vides, elles ne servent à rien.
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#5 Le 26/08/2013, à 10:04
- Blur
Re : [résolu] Makefile
excuse moi je n'ai pas été très clair il est vraie, mais je n'ai pas beaucoup dormie ^^
je vais tenter de t'éclairer:
j'ai un exercice à faire dans le quel je dois construire un Makefile qui compilera :
-> ft_putchar,ft_putstr, ft_strcmp, ft_strlen et ft_swap.
tu as presque tout deviné sauf que le code est de moi puisque c'est mon exo, je ne l'ai pas piquée dans une archive ^^. et pour encore plus de clarté voici les consigne que je dois respecter:
• Écrire le Makefile qui compile votre libft.a.
• Le Makefile ira chercher les fichiers sources dans le dossier srcs.
• Le Makefile ira chercher les fichiers headers dans le dossier includes.
• La lib sera à la racine de l’exercice.
• Le Makefile devra egalement implémenter des règles clean, fclean et re en plus
de la règle all.
• La règle fclean fait l’équivalent d’un make clean et efface aussi le binaire crée lors
du make. La règle re fait l’équivalent d’un make fclean puis un make
• Nous ne ramasserons que votre Makefile et testerons avec nos fichiers. Dans le cadre
de cet exercice, ne gérez que les 5 fonctions obligatoires pour votre lib (ft_putchar,
ft_putstr, ft_strcmp, ft_strlen et ft_swap).
Attention aux wildcards!
******
voila j'espère que ça t'aide à y voir plus claire. et encore désolée pour mon imprécision.
Hors ligne
#6 Le 26/08/2013, à 10:07
- tiramiseb
Re : [résolu] Makefile
Ok, tu as un exercice à faire, tu aimerais tricher et avoir de l'aide d'autres personnes pour y répondre, et là tu nous as donné l'intitulé de l'exercice.
Et maintenant, pour entrer dans le vif du sujet : quel est ton problème ?
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#7 Le 26/08/2013, à 10:14
- Blur
Re : [résolu] Makefile
Non je ne triche pas car la méthode d'enseignement est l'entraide, on a pas de cours a proprement parlé, on fonctionne sur le concret en testant pour comprendre et en cherchant les réponses la ou elle sont, enfin bref. Sauf que aujourd'hui mon transport à foiré et comme je n'ai pas envie d'avoir du retard j'ai transférée les exos du jour chez moi. voili voilou...
Donc tu n'es pas entrain d'aider une tricheuse ne t’inquiète pas.
bah la enfaîte j'airai bien aimée savoir si mon code était viable et surtout j'aurai aimée comprendre ce que je devait mettre en argument pour fclean et re.
Hors ligne
#8 Le 26/08/2013, à 10:20
- tiramiseb
Re : [résolu] Makefile
Ton code m'a l'air pas trop moche.
Pour le "fclean" il doit appeler "clean" (sur la même ligne, après le double-point) et exécuter la commande rm sur le binaire.
Pour le "re", il doit simplement appeler "fclaan" et "all" (car "make" tout court appelle la première règle de la liste).
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#9 Le 26/08/2013, à 10:25
- Blur
Re : [résolu] Makefile
je t'avoue que j'ai u n peu de mal avec le "rm sur le binaire" alors si tu pouvais me faire un rapide topo dessus ça serai ultime.
pour le reste merci de m'avoir accordé un peu de ton temps c'est vraiment sympa, je n'ai jamais codée de ma vie et je suis un peu perdue
Hors ligne
#10 Le 26/08/2013, à 10:28
- tiramiseb
Re : [résolu] Makefile
je t'avoue que j'ai u n peu de mal avec le "rm sur le binaire" alors si tu pouvais me faire un rapide topo dessus ça serai ultime.
Ben tu fais déjà un rm sur "*.o", ton binaire après compilation (résultat du "make all") est "libcomp", il faut alors faire un rm sur "libcomp" tout simplement.
Par contre, en regardant mieux ton code je vois que tu as un problème dans ton "all" : tu lui demandes de compiler des fichiers ".o" qui eux-mêmes sont déjà des fichiers compilés !? Je pense que le "all" n'est pas bon.
Par contre je n'en connais pas assez pour te dire ce qui serait bon.
Je ne suis pas développeur, ça doit faire une 15aine d'années que j'ai pas fait de code et de Makefile...
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#11 Le 26/08/2013, à 10:30
- Blur
Re : [résolu] Makefile
oki merci encore, je vais corriger tout ça ;-) bonne journée .
Hors ligne
#12 Le 26/08/2013, à 11:14
- pingouinux
Re : [résolu] Makefile
Bonjour,
tu lui demandes de compiler des fichiers ".o" qui eux-mêmes sont déjà des fichiers compilés
Dans ce cas, gcc se contente de générer l'exécutable avec les fichiers objets qui lui sont fournis.
• Le Makefile ira chercher les fichiers sources dans le dossier srcs.
• Le Makefile ira chercher les fichiers headers dans le dossier includes.
Pour en tenir compte, je te suggère ceci, en regroupant les .o dans une variable
OBJ = ft_putchar.o ft_putstr.o ft_strcmp.o ftstrlen.o ft_swap.o
all: $(OBJ)
gcc $(OBJ) -o libcomp
%.o: srcs/%.c
gcc -I./includes -o $@ -c $<
clean:
rm -f *.o
fclean:
make clean
rm -f libcomp
re:
make fclean
make
Remarques :
Chaque commande doit être précédée d'une tabulation
rm -rf *.o : -r n'est utile que pour des répertoires
Hors ligne
#13 Le 26/08/2013, à 11:17
- tiramiseb
Re : [résolu] Makefile
Merci pingouinux pour la correction.
Je me coucherai moins bête ce soir
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#14 Le 27/08/2013, à 14:30
- Blur
Re : [résolu] Makefile
merci à tous
Hors ligne
Pages : 1