Makefile
Page 1 sur 2•
Page 1 sur 2 • 1, 2 
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


- 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)
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

morice.net- Membre


- 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

Julien- Administrateur


- 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)
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

morice.net- Membre


- 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

Julien- Administrateur


- 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)
Re: Makefile
Sous unix... quelque soit l'OS !

morice.net- Membre


- 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
Re: Makefile
Ok ok, on fait pas d'exécutables sous UNIX nous, c'est pour ça que ça me semblait bizarre...


Julien- Administrateur


- 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)
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!

morice.net- Membre


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


- 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)
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

morice.net- Membre


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


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

morice.net- Membre


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


- 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)
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

morice.net- Membre


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


- 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)
Page 1 sur 2 • 1, 2 













