Makefile
2 participants
Page 1 sur 1
Makefile
Si quelqu'un sait gérer un makefile pour la compilation de plusieurs fichiers en même temps... j'arrive pas à régler un problème de "séparateur manquant".
Voici ce que j'ai écrit :
Voici ce que j'ai écrit :
- Code:
projet : main.o choix.o appartient.o
gcc -o projet main.o choix.o appartient.o
main.o : main.c
gcc -c main.c -W
choix.o : choix.c
gcc -c choix.c
appartient.o : appartient.c
gcc -c appartient.c
Julien- Administrateur
- Nombre de messages : 12291
Age : 37
Localisation : Clermont-Ferrand
Profession / Etudes : Ingénieur
Points : 22498
Date d'inscription : 10/03/2005
Re: Makefile
Tente ça plutôt :
- Code:
all : executable
executable : main.o choix.o
gcc -o executable main.o main.o
main.o : main.c
gcc -c main.c
choix.o : choix.c
gcc -c choix.c
clean :
rm main.o choix.o executable core
Re: Makefile
Ca sert à quoi les trois premières lignes ?
Julien- Administrateur
- Nombre de messages : 12291
Age : 37
Localisation : Clermont-Ferrand
Profession / Etudes : Ingénieur
Points : 22498
Date d'inscription : 10/03/2005
Re: Makefile
- Code:
gcc -o executable main.o choix.o
Celle-là ?
Oui il y avait une erreur o lieu de main.o c'est choix.o pardon.
Sinon, elle sert à créer l'exe (ici appelé executable) à partir de main.o et choix.o
Enfin je suis pas un expert, je me trompe peut être
A plus
Re: Makefile
OK, mais tu fais le makefile sous quel OS là ?
Julien- Administrateur
- Nombre de messages : 12291
Age : 37
Localisation : Clermont-Ferrand
Profession / Etudes : Ingénieur
Points : 22498
Date d'inscription : 10/03/2005
Re: Makefile
Ok ok, on fait pas d'exécutables sous UNIX nous, c'est pour ça que ça me semblait bizarre...
Julien- Administrateur
- Nombre de messages : 12291
Age : 37
Localisation : Clermont-Ferrand
Profession / Etudes : Ingénieur
Points : 22498
Date d'inscription : 10/03/2005
Re: Makefile
Ah bon, et comment vous faites pour placer des paramètres en entrée ?
Exemple, tu as un programme qui s'appelle intervertir, et tu écris deux mots ensuite, il te le ecrit l'un puis l'autre ... ? Enfin, c'est un exemple simple mais ça sert tout le temps.
Ah oui, par exemple tu veux ouvrir un fichier, tu le places en param et ça roule ...
D'ailleurs, les paramètres (int argc,char * argv[ ] ) du main servent à ça!
Exemple, tu as un programme qui s'appelle intervertir, et tu écris deux mots ensuite, il te le ecrit l'un puis l'autre ... ? Enfin, c'est un exemple simple mais ça sert tout le temps.
Ah oui, par exemple tu veux ouvrir un fichier, tu le places en param et ça roule ...
D'ailleurs, les paramètres (int argc,char * argv[ ] ) du main servent à ça!
Re: Makefile
Oui exactement !
Avec main(int argc, char * argv[ ]), ensuites tu tapes ./nomduprogramme argument1 argument2 ... argumentn et ça marche tout aussi bien !
Avec main(int argc, char * argv[ ]), ensuites tu tapes ./nomduprogramme argument1 argument2 ... argumentn et ça marche tout aussi bien !
Julien- Administrateur
- Nombre de messages : 12291
Age : 37
Localisation : Clermont-Ferrand
Profession / Etudes : Ingénieur
Points : 22498
Date d'inscription : 10/03/2005
Re: Makefile
oui, ok !
La seule différence, c'est que je n'ai pas à taper ./ devant le nom du programme et que je peux donner mes travaux à des gens sans leur filer les sources... honnètement, ça ne sert pas vraiment !
A plus
La seule différence, c'est que je n'ai pas à taper ./ devant le nom du programme et que je peux donner mes travaux à des gens sans leur filer les sources... honnètement, ça ne sert pas vraiment !
A plus
Re: Makefile
OK, c'est bon à savoir ! Mais j'ai essayé pour un seul fichier avec gcc -o executable -c program.c mais ça ne marche pas... c'est quoi ce qu'il faut taper pour un fichier ?
Julien- Administrateur
- Nombre de messages : 12291
Age : 37
Localisation : Clermont-Ferrand
Profession / Etudes : Ingénieur
Points : 22498
Date d'inscription : 10/03/2005
Re: Makefile
pas comme ça
Voilà, là tu as le détail.
- Code:
all : NomDuProgramme
NomDuProgramme : fichier.o
gcc -o NomDuProgramme fichier.o
fichier.o : fichier.c
gcc -c fichier.c
Voilà, là tu as le détail.
Re: Makefile
OK, mais là je suis obligé de faire un makefile... je ne peux pas le faire directement en ligne de commande ?
Julien- Administrateur
- Nombre de messages : 12291
Age : 37
Localisation : Clermont-Ferrand
Profession / Etudes : Ingénieur
Points : 22498
Date d'inscription : 10/03/2005
Re: Makefile
Mais c'est un makefile que je te donne ... oulala , je vois que tu n'as pas vraiment compris le système du makefile.
ça marche comme ça :
une ligne avec ce que tu veux obtenir, deux points ce que tu as besoin
une ligne avec tabulation la commande à éxécuter pour l'obtenir... tu as donc forcément une commande, mais ce n'est pas toi de l'éxécuter, c'est le make file qui l'a fait
Typiquement, tu veux un point o, tu as besoin du point c que tu as codé. La commande pour ça, c'est gcc -c
A plus
ça marche comme ça :
une ligne avec ce que tu veux obtenir, deux points ce que tu as besoin
une ligne avec tabulation la commande à éxécuter pour l'obtenir... tu as donc forcément une commande, mais ce n'est pas toi de l'éxécuter, c'est le make file qui l'a fait
Typiquement, tu veux un point o, tu as besoin du point c que tu as codé. La commande pour ça, c'est gcc -c
A plus
Re: Makefile
Si je sais ce qu'est un makefile ! Mais c'est utile quand t'as plusieurs fichiers à compiler... moi j'aimerais avoir la commande qui te permet de créer un exécutable pour un seul fichier et ce, en ligne de commande.
En gros, quand j'ai un seul fichier à compiler, je tape "gcc -o prog main.c" en ligne de commande et après, je n'ai plus qu'à taper "./prog" pour l'éxécuter.
Je voudrais faire la même chose mais avec un exécutable où tu n'as pas besoin de taper ./ devant le nom de l'exécutable.
En gros, quand j'ai un seul fichier à compiler, je tape "gcc -o prog main.c" en ligne de commande et après, je n'ai plus qu'à taper "./prog" pour l'éxécuter.
Je voudrais faire la même chose mais avec un exécutable où tu n'as pas besoin de taper ./ devant le nom de l'exécutable.
Julien- Administrateur
- Nombre de messages : 12291
Age : 37
Localisation : Clermont-Ferrand
Profession / Etudes : Ingénieur
Points : 22498
Date d'inscription : 10/03/2005
Re: Makefile
Ah d'accord je comprend mieux... à ben ça je ne sais pas.
Si j'ai une idée, je te tiens au courant, mais je séche
Désolé
A plus
Si j'ai une idée, je te tiens au courant, mais je séche
Désolé
A plus
Re: Makefile
OK ça marche.
Merci en tout cas !
Merci en tout cas !
Julien- Administrateur
- Nombre de messages : 12291
Age : 37
Localisation : Clermont-Ferrand
Profession / Etudes : Ingénieur
Points : 22498
Date d'inscription : 10/03/2005
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
Jeu 2 Juil 2015 - 15:16 par louaraychi
» Devoir maison sur équilibre et réaction chimique
Dim 1 Fév 2015 - 17:19 par sararose
» Ma présentation
Sam 25 Oct 2014 - 23:29 par Rith
» projet scientique sur la LUMIERE
Ven 26 Sep 2014 - 20:33 par benjamin-010
» La trajectoire de la Terre
Mar 5 Aoû 2014 - 22:19 par Alban
» Equilibrer une réaction redox
Dim 8 Juin 2014 - 21:18 par Courtney ♥
» les effets sur les lignes de transport de l’électricité
Ven 30 Mai 2014 - 17:14 par leila14
» lignes de transport de l'électricité
Ven 30 Mai 2014 - 17:07 par leila14
» Gravitation
Ven 16 Mai 2014 - 20:16 par fatimaa
» Maquette suspension de moto 2D
Jeu 17 Avr 2014 - 17:20 par Sti2d