Makefile

Poster un nouveau sujet   Répondre au sujet

Page 1 sur 2 1, 2  Suivante

Voir le sujet précédent Voir le sujet suivant Aller en bas

Makefile

Message par Julien le Sam 8 Déc - 2: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
Administrateur
Administrateur

Sexe:Masculin
Messages : 6119
Inscrit le : 10 Mar 2005
Age : 21
Localisation : Bourges
Profession / Etudes : Elève ingénieur

Feuille de personnage
Nombre de problèmes du mois résolus:
0/0  (0/0)

Revenir en haut Aller en bas

Re: Makefile

Message par morice.net le Dim 6 Avr - 14: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
Membre
Membre

Sexe:Masculin
Messages : 77
Inscrit le : 10 Oct 2005
Age : 20
Localisation : Toulouse en semaine Lorp le week-end et les vacances
Profession / Etudes : IUP Ingénieur des Sciences Informatiques

Revenir en haut Aller en bas

Re: Makefile

Message par Julien le Dim 6 Avr - 19:58

Ca sert à quoi les trois premières lignes ?

Julien
Administrateur
Administrateur

Sexe:Masculin
Messages : 6119
Inscrit le : 10 Mar 2005
Age : 21
Localisation : Bourges
Profession / Etudes : Elève ingénieur

Feuille de personnage
Nombre de problèmes du mois résolus:
0/0  (0/0)

Revenir en haut Aller en bas

Re: Makefile

Message par morice.net le Lun 7 Avr - 10: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
Membre
Membre

Sexe:Masculin
Messages : 77
Inscrit le : 10 Oct 2005
Age : 20
Localisation : Toulouse en semaine Lorp le week-end et les vacances
Profession / Etudes : IUP Ingénieur des Sciences Informatiques

Revenir en haut Aller en bas

Re: Makefile

Message par Julien le Lun 7 Avr - 16:22

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

Julien
Administrateur
Administrateur

Sexe:Masculin
Messages : 6119
Inscrit le : 10 Mar 2005
Age : 21
Localisation : Bourges
Profession / Etudes : Elève ingénieur

Feuille de personnage
Nombre de problèmes du mois résolus:
0/0  (0/0)

Revenir en haut Aller en bas

Re: Makefile

Message par morice.net le Mar 8 Avr - 9:14

Sous unix... quelque soit l'OS !

morice.net
Membre
Membre

Sexe:Masculin
Messages : 77
Inscrit le : 10 Oct 2005
Age : 20
Localisation : Toulouse en semaine Lorp le week-end et les vacances
Profession / Etudes : IUP Ingénieur des Sciences Informatiques

Revenir en haut Aller en bas

Re: Makefile

Message par Julien le Mar 8 Avr - 11:42

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

Julien
Administrateur
Administrateur

Sexe:Masculin
Messages : 6119
Inscrit le : 10 Mar 2005
Age : 21
Localisation : Bourges
Profession / Etudes : Elève ingénieur

Feuille de personnage
Nombre de problèmes du mois résolus:
0/0  (0/0)

Revenir en haut Aller en bas

Re: Makefile

Message par morice.net le Mar 8 Avr - 13: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
Membre
Membre

Sexe:Masculin
Messages : 77
Inscrit le : 10 Oct 2005
Age : 20
Localisation : Toulouse en semaine Lorp le week-end et les vacances
Profession / Etudes : IUP Ingénieur des Sciences Informatiques

Revenir en haut Aller en bas

Re: Makefile

Message par Julien le Mar 8 Avr - 18:31

Oui exactement !

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

Julien
Administrateur
Administrateur

Sexe:Masculin
Messages : 6119
Inscrit le : 10 Mar 2005
Age : 21
Localisation : Bourges
Profession / Etudes : Elève ingénieur

Feuille de personnage
Nombre de problèmes du mois résolus:
0/0  (0/0)

Revenir en haut Aller en bas

Re: Makefile

Message par morice.net le Mer 9 Avr - 9: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
Membre
Membre

Sexe:Masculin
Messages : 77
Inscrit le : 10 Oct 2005
Age : 20
Localisation : Toulouse en semaine Lorp le week-end et les vacances
Profession / Etudes : IUP Ingénieur des Sciences Informatiques

Revenir en haut Aller en bas

Re: Makefile

Message par Julien le Mer 9 Avr - 10: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
Administrateur
Administrateur

Sexe:Masculin
Messages : 6119
Inscrit le : 10 Mar 2005
Age : 21
Localisation : Bourges
Profession / Etudes : Elève ingénieur

Feuille de personnage
Nombre de problèmes du mois résolus:
0/0  (0/0)

Revenir en haut Aller en bas

Re: Makefile

Message par morice.net le Mer 9 Avr - 14: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
Membre
Membre

Sexe:Masculin
Messages : 77
Inscrit le : 10 Oct 2005
Age : 20
Localisation : Toulouse en semaine Lorp le week-end et les vacances
Profession / Etudes : IUP Ingénieur des Sciences Informatiques

Revenir en haut Aller en bas

Re: Makefile

Message par Julien le Mer 9 Avr - 17:17

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

Julien
Administrateur
Administrateur

Sexe:Masculin
Messages : 6119
Inscrit le : 10 Mar 2005
Age : 21
Localisation : Bourges
Profession / Etudes : Elève ingénieur

Feuille de personnage
Nombre de problèmes du mois résolus:
0/0  (0/0)

Revenir en haut Aller en bas

Re: Makefile

Message par morice.net le Jeu 10 Avr - 8: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
Membre
Membre

Sexe:Masculin
Messages : 77
Inscrit le : 10 Oct 2005
Age : 20
Localisation : Toulouse en semaine Lorp le week-end et les vacances
Profession / Etudes : IUP Ingénieur des Sciences Informatiques

Revenir en haut Aller en bas

Re: Makefile

Message par Julien le Jeu 10 Avr - 13: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
Administrateur
Administrateur

Sexe:Masculin
Messages : 6119
Inscrit le : 10 Mar 2005
Age : 21
Localisation : Bourges
Profession / Etudes : Elève ingénieur

Feuille de personnage
Nombre de problèmes du mois résolus:
0/0  (0/0)

Revenir en haut Aller en bas

Page 1 sur 2 1, 2  Suivante

Voir le sujet précédent Voir le sujet suivant Revenir en haut


Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum