Forum d'entraide en sciences
Bienvenue sur le forum d'entraide en sciences ! Inscrivez-vous gratuitement pour accéder à l'intégralité du forum ou connectez-vous si c'est déjà fait !

Bonne visite !

Rejoignez le forum, c'est rapide et facile

Forum d'entraide en sciences
Bienvenue sur le forum d'entraide en sciences ! Inscrivez-vous gratuitement pour accéder à l'intégralité du forum ou connectez-vous si c'est déjà fait !

Bonne visite !
Forum d'entraide en sciences
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
-40%
Le deal à ne pas rater :
-40% sur le Pack Gaming Mario PDP Manette filaire + Casque filaire ...
29.99 € 49.99 €
Voir le deal

Makefile

2 participants

Aller en bas

Makefile Empty Makefile

Message par Julien Sam 8 Déc 2007 - 0:52

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 :
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
Julien
Administrateur
Administrateur

Masculin Nombre de messages : 12291
Age : 37
Localisation : Clermont-Ferrand
Profession / Etudes : Ingénieur
Points : 22498
Date d'inscription : 10/03/2005

Revenir en haut Aller en bas

Makefile Empty Re: Makefile

Message par morice.net Dim 6 Avr 2008 - 12:13

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
morice.net
morice.net
Membre
Membre

Masculin Nombre de messages : 77
Age : 36
Localisation : Toulouse en semaine Lorp le week-end et les vacances
Profession / Etudes : IUP Ingénieur des Sciences Informatiques
Points : 6774
Date d'inscription : 10/10/2005

http://artaud.g.free.fr

Revenir en haut Aller en bas

Makefile Empty Re: Makefile

Message par Julien Dim 6 Avr 2008 - 17:58

Ca sert à quoi les trois premières lignes ?
Julien
Julien
Administrateur
Administrateur

Masculin Nombre de messages : 12291
Age : 37
Localisation : Clermont-Ferrand
Profession / Etudes : Ingénieur
Points : 22498
Date d'inscription : 10/03/2005

Revenir en haut Aller en bas

Makefile Empty Re: Makefile

Message par morice.net Lun 7 Avr 2008 - 8:51

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 Smile

A plus
morice.net
morice.net
Membre
Membre

Masculin Nombre de messages : 77
Age : 36
Localisation : Toulouse en semaine Lorp le week-end et les vacances
Profession / Etudes : IUP Ingénieur des Sciences Informatiques
Points : 6774
Date d'inscription : 10/10/2005

http://artaud.g.free.fr

Revenir en haut Aller en bas

Makefile Empty Re: Makefile

Message par Julien Lun 7 Avr 2008 - 14:22

OK, mais tu fais le makefile sous quel OS là ?
Julien
Julien
Administrateur
Administrateur

Masculin Nombre de messages : 12291
Age : 37
Localisation : Clermont-Ferrand
Profession / Etudes : Ingénieur
Points : 22498
Date d'inscription : 10/03/2005

Revenir en haut Aller en bas

Makefile Empty Re: Makefile

Message par morice.net Mar 8 Avr 2008 - 7:14

Sous unix... quelque soit l'OS !
morice.net
morice.net
Membre
Membre

Masculin Nombre de messages : 77
Age : 36
Localisation : Toulouse en semaine Lorp le week-end et les vacances
Profession / Etudes : IUP Ingénieur des Sciences Informatiques
Points : 6774
Date d'inscription : 10/10/2005

http://artaud.g.free.fr

Revenir en haut Aller en bas

Makefile Empty Re: Makefile

Message par Julien Mar 8 Avr 2008 - 9:42

Ok ok, on fait pas d'exécutables sous UNIX nous, c'est pour ça que ça me semblait bizarre...
Julien
Julien
Administrateur
Administrateur

Masculin Nombre de messages : 12291
Age : 37
Localisation : Clermont-Ferrand
Profession / Etudes : Ingénieur
Points : 22498
Date d'inscription : 10/03/2005

Revenir en haut Aller en bas

Makefile Empty Re: Makefile

Message par morice.net Mar 8 Avr 2008 - 11:19

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 ... Smile

D'ailleurs, les paramètres (int argc,char * argv[ ] ) du main servent à ça!
morice.net
morice.net
Membre
Membre

Masculin Nombre de messages : 77
Age : 36
Localisation : Toulouse en semaine Lorp le week-end et les vacances
Profession / Etudes : IUP Ingénieur des Sciences Informatiques
Points : 6774
Date d'inscription : 10/10/2005

http://artaud.g.free.fr

Revenir en haut Aller en bas

Makefile Empty Re: Makefile

Message par Julien Mar 8 Avr 2008 - 16:31

Oui exactement !

Avec main(int argc, char * argv[ ]), ensuites tu tapes ./nomduprogramme argument1 argument2 ... argumentn et ça marche tout aussi bien !
Julien
Julien
Administrateur
Administrateur

Masculin Nombre de messages : 12291
Age : 37
Localisation : Clermont-Ferrand
Profession / Etudes : Ingénieur
Points : 22498
Date d'inscription : 10/03/2005

Revenir en haut Aller en bas

Makefile Empty Re: Makefile

Message par morice.net Mer 9 Avr 2008 - 7:11

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
morice.net
morice.net
Membre
Membre

Masculin Nombre de messages : 77
Age : 36
Localisation : Toulouse en semaine Lorp le week-end et les vacances
Profession / Etudes : IUP Ingénieur des Sciences Informatiques
Points : 6774
Date d'inscription : 10/10/2005

http://artaud.g.free.fr

Revenir en haut Aller en bas

Makefile Empty Re: Makefile

Message par Julien Mer 9 Avr 2008 - 8:39

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
Julien
Administrateur
Administrateur

Masculin Nombre de messages : 12291
Age : 37
Localisation : Clermont-Ferrand
Profession / Etudes : Ingénieur
Points : 22498
Date d'inscription : 10/03/2005

Revenir en haut Aller en bas

Makefile Empty Re: Makefile

Message par morice.net Mer 9 Avr 2008 - 12:48

pas comme ça Smile

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.
morice.net
morice.net
Membre
Membre

Masculin Nombre de messages : 77
Age : 36
Localisation : Toulouse en semaine Lorp le week-end et les vacances
Profession / Etudes : IUP Ingénieur des Sciences Informatiques
Points : 6774
Date d'inscription : 10/10/2005

http://artaud.g.free.fr

Revenir en haut Aller en bas

Makefile Empty Re: Makefile

Message par Julien Mer 9 Avr 2008 - 15:17

OK, mais là je suis obligé de faire un makefile... je ne peux pas le faire directement en ligne de commande ?
Julien
Julien
Administrateur
Administrateur

Masculin Nombre de messages : 12291
Age : 37
Localisation : Clermont-Ferrand
Profession / Etudes : Ingénieur
Points : 22498
Date d'inscription : 10/03/2005

Revenir en haut Aller en bas

Makefile Empty Re: Makefile

Message par morice.net Jeu 10 Avr 2008 - 6:52

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 Exclamation

Typiquement, tu veux un point o, tu as besoin du point c que tu as codé. La commande pour ça, c'est gcc -c Exclamation

A plus Wink
morice.net
morice.net
Membre
Membre

Masculin Nombre de messages : 77
Age : 36
Localisation : Toulouse en semaine Lorp le week-end et les vacances
Profession / Etudes : IUP Ingénieur des Sciences Informatiques
Points : 6774
Date d'inscription : 10/10/2005

http://artaud.g.free.fr

Revenir en haut Aller en bas

Makefile Empty Re: Makefile

Message par Julien Jeu 10 Avr 2008 - 11:03

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.
Julien
Julien
Administrateur
Administrateur

Masculin Nombre de messages : 12291
Age : 37
Localisation : Clermont-Ferrand
Profession / Etudes : Ingénieur
Points : 22498
Date d'inscription : 10/03/2005

Revenir en haut Aller en bas

Makefile Empty Re: Makefile

Message par morice.net Jeu 10 Avr 2008 - 11:22

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 Sad

Désolé

A plus Exclamation
morice.net
morice.net
Membre
Membre

Masculin Nombre de messages : 77
Age : 36
Localisation : Toulouse en semaine Lorp le week-end et les vacances
Profession / Etudes : IUP Ingénieur des Sciences Informatiques
Points : 6774
Date d'inscription : 10/10/2005

http://artaud.g.free.fr

Revenir en haut Aller en bas

Makefile Empty Re: Makefile

Message par Julien Jeu 10 Avr 2008 - 12:42

OK ça marche. Wink

Merci en tout cas !
Julien
Julien
Administrateur
Administrateur

Masculin Nombre de messages : 12291
Age : 37
Localisation : Clermont-Ferrand
Profession / Etudes : Ingénieur
Points : 22498
Date d'inscription : 10/03/2005

Revenir en haut Aller en bas

Makefile Empty Re: Makefile

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser