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 :

Pas de règle pour fabriquer la cible (Makefile)


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 5
    Par défaut Pas de règle pour fabriquer la cible (Makefile)
    Bonsoir,
    j'ai un petit souci avec un Makefile. J'ai comme message d'erreur:
    "Pas de règle pour fabriquer la cible « embedder.o »"
    Or le fichier embedder.c en question est dans le dossier avec d'autres fichiers C dont les fichiers objets sont générés sans souci.
    Voici le Makefile:


    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    CC=`which gcc`
    RM=/bin/rm -f
    MV=/bin/mv
     
    INC=../include 
     
    CFLAGS=`libit-config --cflags` -O2 -Wall -I $(INC) 
    LFLAGS=`libit-config --libs`
     
    COMMONS=utils.o upsampling.o ss.o
     
    EMBED_OBJ=mixing.o masking.o modulation.o
    DECODE_OBJ=fft.o estimation.o
     
    all : embedder decoder
     
    embedder : embedder.o $(COMMONS) $(EMBED_OBJ)
    	$(CC) $^ $(LFLAGS) -o $@ 
     
    decoder : decoder.o $(COMMONS) $(DECODE_OBJ)
    	$(CC) $^ $(LFLAGS) -o $@ 
     
    .c.o : 
    	$(CC) $(CFLAGS) $^ -c 
     
    clean :
    	@mv imodulation.o imodulation.save
    	@$(RM) $(COMMONS) embedder.o decoder.o $(EMBED_OBJ) $(DECODE_OBJ) *~ semantic* 
    	@mv imodulation.save imodulation.o


    Je ne connais pas la syntaxe pour les Makefile, du coup je ne sais pas du tout où ça cloche.
    Merci d'avance pour toute suggestion.

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    Le ligne suivante me parait louche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    .c.o :
    	$(CC) $(CFLAGS) $^ -c
    Que se passe-t-il si tu la remplaces par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    %.o: %.c
    	$(CC) -o $@ -c $< $(CFLAGS)
    Au passage, un bon tuto : http://gl.developpez.com/tutoriel/outil/makefile/

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 5
    Par défaut Idem
    En changeant la ligne, cela donne tjs

    make: *** Pas de règle pour fabriquer la cible « embedder.o », nécessaire pour « embedder ». Arrêt.

    Merci pour le tuto

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 484
    Par défaut
    Citation Envoyé par arsene87 Voir le message
    Bonsoir,
    j'ai un petit souci avec un Makefile. J'ai comme message d'erreur:
    "Pas de règle pour fabriquer la cible « embedder.o »"
    Ce message signifie qu'une de tes règles a pour dépendance le fichier ou la règle en question et que ni l'un ni l'autre n'existent.

    C'est ici :

    Code Makefile : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    embedder : embedder.o $(COMMONS) $(EMBED_OBJ)
    	$(CC) $^ $(LFLAGS) -o $@ 
    
    decoder : decoder.o $(COMMONS) $(DECODE_OBJ)
    	$(CC) $^ $(LFLAGS) -o $@

    « embedder.o » fait partie des dépendances de « embedder » et n'est produit nulle part ailleurs. Je pense que c'est « embedder.c » que tu voulais mettre ici. Même chose pour « decoder ».

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 5
    Par défaut
    En mettant embedder.c au lieu d'embedder.o, c'est pareil:
    make: *** Pas de règle pour fabriquer la cible « embedder.c », nécessaire pour « embedder ». Arrêt.

    Ce n'est pas mon makefile. Le prof l'a fournit pour un TP ( qui n'a rien à voir avec les makefile ) et ça tournait bien en salle info. Mais là pas moyen de finir le TP sur mon PC, ça me bloque pour la suite

  6. #6
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 5
    Par défaut
    Ca marche
    Il fallait mettre le makefile tel quel dans le dossier contenant les sources et compiler dans ce dossier.
    Merci

  7. #7
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 484
    Par défaut
    Super, mais n'oublie pas !

  8. #8
    Membre à l'essai
    Homme Profil pro
    reconversion
    Inscrit en
    Juin 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : reconversion
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2014
    Messages : 5
    Par défaut Demande de precision :
    Bonjour, quelques années parès, j'ai peu d'espoir que tu te souvienne... Mais de quelles 'sources" parles tu ?? J'ai le même problème ça me gonfle..
    Merci

  9. #9
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    des fichiers sources.
    Mais ouvre ton propre sujet, car je pense que tu vas rapidement avoir d'autres questions.

Discussions similaires

  1. make pas de règle pour fabrique la cible clean
    Par sousoux dans le forum Linux
    Réponses: 11
    Dernier message: 09/12/2014, 10h20
  2. Makefile : pas de règle pour fabriquer la cible « moc »
    Par allchimiste dans le forum Débuter
    Réponses: 1
    Dernier message: 18/06/2013, 14h33
  3. Aucune règle pour fabriquer la cible
    Par rainbowcrypt dans le forum Modules
    Réponses: 1
    Dernier message: 05/06/2011, 16h41
  4. Réponses: 3
    Dernier message: 15/02/2009, 10h27
  5. [postfix] make tidy: Pas de règle pour fabriquer la cible « tidy »
    Par rvfranck dans le forum Administration système
    Réponses: 5
    Dernier message: 23/06/2007, 16h49

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