IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Systèmes de compilation Discussion :

Makefile avec plusieurs fichiers output


Sujet :

Systèmes de compilation

  1. #1
    Membre régulier
    Inscrit en
    Août 2004
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 201
    Points : 83
    Points
    83
    Par défaut Makefile avec plusieurs fichiers output
    Bonjour j'ai 3 fichiers qui devront s'executer. Mais j'aimerais faire la compilation dans un seul makefile

    fileloop.c (contient la fonction main), account.c et bank.c.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    fileloop:              fileloop.o header.h
                            gcc *.o -Wall -o fileloop
     
    fileloop.o:           fileloop.c header.h
                            gcc -Wall -c fileloop.c
     
    account:            accounto header.h
                            gcc *.o -Wall -o account
     
    account.o:          account.c header.h
                            gcc -Wall -c account.c
    Pour l'instant je n'ai que le fichier add.c qui se compile, pas account.c, j'ai essaye mais je n'ai que ca quand j'execute makefile:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    gcc -Wall -c fileloop.c   
    gcc *.o -Wall -o fileloop
    Alors que je voudrais aussi, avoir un executable nomme "account" et "bank" aussi.

    Autre question, si je veux compiler account.c en deux fichier( account et le meme en majuscules: ACCOUNT)

    Merci

  2. #2
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    (Pas le bon forum -> Forum Outils)

    Il manque un point dans la liste des dependances de account:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    account:            account.o header.h

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Points : 1 069
    Points
    1 069
    Par défaut
    Quelques choses à éclaircir.

    Si tu n'as que fileloop.c qui contient une fonction main(), tu ne produire qu'un exécutable.
    Est-ce que account.c et bank.c ont aussi une fonction main() ?

    Tu as trois fichiers fileloop.c, account.c et bank.c. Que vient faire add.c ?

    account et le meme en majuscules: ACCOUNT
    C'est une très mauvaise idée de distinguer deux fichiers uniquement par majuscule/minuscule. Trouve lui un vrai nom.

  4. #4
    Membre régulier
    Inscrit en
    Août 2004
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 201
    Points : 83
    Points
    83
    Par défaut
    Citation Envoyé par aoyou Voir le message
    Quelques choses à éclaircir.

    Si tu n'as que fileloop.c qui contient une fonction main(), tu ne produire qu'un exécutable.
    Est-ce que account.c et bank.c ont aussi une fonction main() ?
    Oui tout ces fichiers contiennent une fonction main().
    Tu as trois fichiers fileloop.c, account.c et bank.c. Que vient faire add.c ?
    je me suis trompe, je voulais dire fileloop.c

    C'est une très mauvaise idée de distinguer deux fichiers uniquement par majuscule/minuscule. Trouve lui un vrai nom.
    En fait c'est plutot une ligne de commande, donc je voudrais que ACCOUNT s'execute de la meme maniere que "account", est ce qu'il y a pas un moyen ?

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Points : 1 069
    Points
    1 069
    Par défaut
    Voilà ce que je te propose en reprenant légèrement ton Makefile. C'est améliorable.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    all : fileloop account bank
     
    fileloop:              fileloop.o
                            gcc -o fileloop fileloop.o
     
    fileloop.o:           fileloop.c header.h
                            gcc -Wall -c fileloop.c
     
    account:            account.o
                            gcc -o account account.o
     
    account.o:          account.c header.h
                            gcc -Wall -c account.c
     
    bank:                 bank.o
                            gcc -o bank bank.o
     
    bank.o:              bank.c header.h
                            gcc -Wall -c bank.c
    Tu sais que sous Windows, tu ne peux pas avoir deux fichiers nommés account et ACCOUNT. Windows n'est pas sensible aux majuscules.
    Sous Unix, tu peux peut-être te débrouiller avec un alias.

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/04/2008, 00h03
  2. Upload d'un repertoire avec plusieurs fichiers.xls
    Par skillipo dans le forum Documents
    Réponses: 1
    Dernier message: 18/03/2008, 10h59
  3. [Compiler] Compiler une application avec plusieurs fichiers m
    Par ploukinet dans le forum MATLAB
    Réponses: 3
    Dernier message: 10/05/2007, 17h34
  4. Debugger C avec plusieurs fichier *.o
    Par bulki dans le forum C
    Réponses: 3
    Dernier message: 04/05/2007, 11h57
  5. [linux][gcc] Comment travaille t-on avec plusieurs fichiers?
    Par kaygee dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 02/04/2004, 17h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo