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

C Discussion :

make - inclusions et récursivement


Sujet :

C

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 13
    Par défaut make - inclusions et récursivement
    Bonjour.
    J'ai un petit programme avec différents modules qui se construit ainsi.
    [ ] représente la relation d'inclusion, par exemple, A [B] signifie que B est inclu dans A.
    J'ai donc.

    main.c[A[B[C[D]]]]

    Voici la tête de mon makefile
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    A.o : A.c A.h B.h B.o
    	$(CC) $(CFLAGS) -c  $< B.o $(LIBDIR) $(LIBRARIES)  
    B.o : B.c B.h C.h C.o
    	$(CC) $(CFLAGS) -c  $< C.o $(LIBDIR) $(LIBRARIES)  
    C.o : C.c C.h D.h D.o
    	$(CC) $(CFLAGS) -c  $< D.o $(LIBDIR) $(LIBRARIES)  
    D.o : D.c D.h
    	$(CC) $(CFLAGS) -c  $< $(LIBDIR) $(LIBRARIES)
    une fois que j'ai A.o, il faut que je génère le binaire main
    j'ai fait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    main : main.c A.o
    	$(CC) $(CFLAGS) main.c -o main A.o $(LIBDIR) $(LIBRARIES)
    Et j'ai des undef pour tout.
    Pourtant, chaque .o ne contient il pas toutes les définitions précédentes ?
    si je change cette ligne en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    main : main.c A.o
    	$(CC) $(CFLAGS) main.c -o main *.o $(LIBDIR) $(LIBRARIES)
    Il y a des définitions multiples.

    Auriez vous une solution?
    Merci d'avance.

  2. #2
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Maria Ross Voir le message
    Bonjour.
    J'ai un petit programme avec différents modules qui se construit ainsi.
    [ ] représente la relation d'inclusion, par exemple, A [B] signifie que B est inclu dans A.
    J'ai donc.

    main.c[A[B[C[D]]]]

    Voici la tête de mon makefile
    [CODE]
    A.o : A.c A.h B.h B.o
    $(CC) $(CFLAGS) -c $< B.o $(LIBDIR) $(LIBRARIES)
    Ca me parait absurde...

    Revois le principe de make. Il y a un tutoriel sur ce site, sinon, j'ai fait une initiation :

    http://emmanuel-delahaye.developpez.com/make.htm

    Et si il y a des définitions multiples, c'est que les fichiers d'interface sont bizarres.

    Quelques règles de bon sens :

    http://emmanuel-delahaye.developpez.com/codage.htm

Discussions similaires

  1. Erreur lors d'un make une inclusion non trouvée
    Par CinePhil dans le forum Bibliothèques
    Réponses: 4
    Dernier message: 22/09/2009, 08h48
  2. Réponses: 1
    Dernier message: 17/03/2009, 17h00
  3. inclusions récursives en C++
    Par dwarfman78 dans le forum Débuter
    Réponses: 2
    Dernier message: 04/09/2008, 16h58
  4. inclusions de fichiers récursive
    Par gedeon555 dans le forum C++
    Réponses: 3
    Dernier message: 19/02/2007, 13h38
  5. Inclusion de fichiers en IDL
    Par babou dans le forum CORBA
    Réponses: 10
    Dernier message: 30/07/2002, 16h47

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