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] Problème de récursion


Sujet :

Systèmes de compilation

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 16
    Points : 13
    Points
    13
    Par défaut [Makefile] Problème de récursion
    Bonjour tout le monde !

    Je suis actuellement sur un petit Makefile générique (pour ne pas à avoir à le modifier à chaque projet) ... Certains me diront que c'est pas bien et ils auront surement raison mais bon la question n'est pas là

    Ci dessous l’arborescence des fichiers d'un "simple" HelloWorld :

    ├── build
    │   ├── bin
    │   │   └── hello
    │   └── obj
    │      ├── hello.o
    │       └── main.o
    ├── inc
    │   ├── hello
    │   │   └── hello.h
    │   └── version.h
    ├── Makefile
    └── src
        ├── hello.c
        └── main.c
    Jusqu'ici tout fonctionne ! Et puis une idée un peu étrange est arrivée ... Passer à cette arborescence :

    ├── build
    │   ├── bin
    │   └── obj
    │       ├── hello.o
    │       └── main.o
    ├── inc
    │   ├── hello
    │   │   └── hello.h
    │   └── version.h
    ├── Makefile
    └── src
        ├── hello
        │   └── hello.c
        └── main.c
    Et plus rien ne va car le compilo ne trouve plus le hello.c

    Voici un bribes du Makefile en question :

    Code Makefile : 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
    21
    22
    # Directories
    PROJ_DIR = ./
    SRCDIR = src
    INCDIR   = inc
    BUILDDIR = build
    DEBUG_BUILDDIR := build-debug
    OBJDIR   = $(OUTPUT_DIR)/obj
    BINDIR   = $(OUTPUT_DIR)/bin
     
    SOURCES  := $(shell find $(SRCDIR) -name '*.c')
    INCLUDES := $(shell find $(INCDIR) -name '*.h')
    OBJECTS  := $(SOURCES:$(SRCDIR)/%.c=$(OBJDIR)/%.o)
     
    # Main instruction
    main-build: $(OBJECTS)
    	@$(LINKER) $(TARGET)-$(SOFT_VERSION) $(LFLAGS) $(OBJECTS)
    	@echo "\n*** Linking complete! ***"
     
    # Create object files
    $(OBJECTS): $(OBJDIR)/%.o : $(SRCDIR)/%.c
    	@$(CC) $(CFLAGS) -c $< -o $@ $(LDFLAGS)
    	@echo "Compiled "$<" successfully!"

    Tout se passe bien pour le headers mais pas pour les fichiers sources et aucune idée du pourquoi du comment, un idée ? une piste ?

    Étant débutant dans le domaine toute remarque est la bienvenue

    Merci,
    Trigger00

  2. #2
    Membre émérite
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Points : 2 601
    Points
    2 601
    Par défaut
    Bonjour,
    Il y a apparemment déjà un projet de cette sorte hébergé ici : Makefile générique. Peut-être pourras-tu t'en inspirer ?

    Sinon je pense que la ligne $(OBJECTS): $(OBJDIR)/%.o : $(SRCDIR)/%.c pose problème. Ne serait-ce pas plutôt $(OBJDIR)/%.o : $(SRCDIR)/%.c car tu ne cherches qu'à décrire comme créer un fichier objet.

  3. #3
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 16
    Points : 13
    Points
    13
    Par défaut
    Merci pour la réponse picodev

    Effectivement ça fonctionne avec ta correction même si je dois avouer que je ne comprend pas vraiment pourquoi ...

    [EDIT] Après la lecture du Makefile générique et de l'introduction disponible sur le forum je comprend mieux ma boulette Merci !

    [EDIT2] Si des personnes sont intéressées par le Makefile, je peux le poster au besoin !

    ++
    Trigger00

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/10/2008, 11h49
  2. Excel et publipostage ( problème de "récursion" )
    Par Clad3 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 22/08/2007, 12h38
  3. [Makefile] Problème de liens
    Par Alexandre` dans le forum Systèmes de compilation
    Réponses: 1
    Dernier message: 07/03/2007, 12h45
  4. [Makefile] Problème lancement Makefile dans Shell
    Par domiq44 dans le forum Systèmes de compilation
    Réponses: 14
    Dernier message: 29/11/2006, 16h17
  5. makefile problème compilation
    Par Goundy dans le forum C
    Réponses: 11
    Dernier message: 02/10/2006, 00h24

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