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 : no rule to make


Sujet :

Systèmes de compilation

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    121
    Points
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 121
    Points : 63
    Par défaut Makefile : no rule to make
    Bonjour chers développeurs,

    J'ai pour mission de "réparer" un makefile. Tout ce passait bien jusqu'à ce que je tombe sur une erreur que je ne comprend pas.

    La commande utilisée pour la compilation est :
    Le but de ce Makefile est de compiler un grand nombre de procédures SQL. Le makefile contient donc de nombreux blocs de la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    /home/.../lib/P_NomProcedure.o : /home/.../proc/P_NomProcedure.sql
        <liste de commandes>
    Mon problème est que parfois je me retrouve avec une l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    make: *** No rule to make target `/home/.../lib/P_NomProcedure.sql', needed by `/home/.../lib/P_NomProcedure.o'.  Stop.
    Ce qui est étrange est que si juste après j'exécute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    make /home/.../lib/P_NomProcedure.o
    L'erreur n'est pas reproduite et les commandes s'effectuent correctement.
    Il faut préciser que les fichiers sql existent bien et ne sont jamais modifiés dans le makefile. De plus l'erreur n'est pas toujours sur le même fichier.

    Le make utilisé est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    /usr/gnu/bin/make
    GNU Make version 3.78.1

    Mes maigres compétences en makefile sont dépassées. Ce qui me semblerait le plus probable serait un problème dû à l'option -j utilisée.
    Si vous avez une piste je suis tout ouïe.


    Merci d'avance !

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

    A quoi ressemble le Makefile à réparer ?

    Un piège fréquent des Makefile est de confondre quatre espaces " " et le caractère tab : " ".

    Asssures toi que tes règles sont bien précédées d'une tabulation et non pas d'expaces.

    Un bon lien pour finir : http://gl.developpez.com/tutoriel/outil/makefile/

  3. #3
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Points
    3 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Par défaut
    Autrement le message indique qu'il ne sais pas comment fabriquer le fichier
    P_NomProcedure.sql


    C'est typique d'un chemin vers une lib ou un include mal positionné.

    il ne sait pas ou trouver le fichier, donc il cherche la regle pour le construire, il n'a pas de règle donc il leve un erreur.

Discussions similaires

  1. * No rule to make target `|', needed by
    Par plauchon dans le forum Eclipse C & C++
    Réponses: 0
    Dernier message: 01/03/2009, 12h29
  2. Réponses: 2
    Dernier message: 03/02/2009, 12h03
  3. [eclipse CDT+Qt] no rule to make target all
    Par olivier57b dans le forum Eclipse C & C++
    Réponses: 1
    Dernier message: 13/06/2008, 15h34
  4. make[1]: No rule to make target `new'. Stop.
    Par kris1 dans le forum Linux
    Réponses: 3
    Dernier message: 14/03/2008, 21h29
  5. [devcpp] et makefile - no rule to make target
    Par Jabrul dans le forum Systèmes de compilation
    Réponses: 3
    Dernier message: 09/09/2005, 14h12

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