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 : seule la premiere ligne compile


Sujet :

Systèmes de compilation

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 84
    Points : 52
    Points
    52
    Par défaut Makefile : seule la premiere ligne compile
    Bonjour,

    J'ai un makefile dont les lignes pour la compilation contiennent (j'ai simplifié pour l'exemple):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    util_ppc.o : ${BIBLIO}/util_ppc.c
    	${CC} ${INCLUDE} -c ${BIBLIO}/util_ppc.c
    util_ora.o : ${BIBLIO}/util_ora.c 
    	${CC} ${INCLUDE} -c ${BIBLIO}/util_ora.c
    util_ora.c : ${BIBLIO}/util_ora.pc ${BIBLIO}/util_ora.hdr
    	${PROC} include=\xxx...  HEADER=hdadm@r iname=${BIBLIO}/util_ora.pc SQLCHECK=SEMANTICS  AUTO_CONNECT=YES  USERID=XX/XX
    util_ora.hdr : ${BIBLIO}/util_ora.h
    	${PROC} $INCLUDE_PROC include=\xxx HEADER=hdr iname=${BIBLIO}/util_ora.h
    Mon soucis c'est que pris isolément, chaque ligne compile, par contre, si je lance le tout, le makefile compile le premier fichier (util_ppc.o) et ignore les autres.
    En modifiant les autres fichies, cela ne change rien. Je suis obligé de mettre des # devant les lignes qui compilent pour que le makefile passe au fichier suivant.
    Je ne comprend rien

  2. #2
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Points : 4 637
    Points
    4 637
    Par défaut
    Le fonctionnement des Makefile veut que la premiere regle (ou la regle dont le nom est passe en argument a l'utilitaire make) soit evaluee, les dependances sont a leur tour evaluee si necessaire. Ainsi une regle qui n'est ni la premiere, ne parmi les dependances d'une des regles evaluees ne le sera jamais.

    Pour resoudre ton probleme, il faut creer une regle prealable a toute les autres qui possede dans ces dependances les autres regles, par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    all: util_ppc.o util_ora.o
    D'ailleurs ne te manquerait-il pas la regle qui genere l'executable final a partir des .o dans ce makefile (si une telle regle existe, il suffit qu'elle soit la premiere du makefile pour resoudre tes probleme).

    Un peu de lecture : Introduction à Makefile

Discussions similaires

  1. [MySQL] Requête SQL qui zappe la premiere ligne
    Par mulbek dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 19/01/2006, 16h24
  2. comment effacer la premiere ligne dans un fichier
    Par aliosys dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 29/12/2005, 10h14
  3. [C#] Récuperer la premiere ligne d'un SqlDataReader
    Par Oberown dans le forum Windows Forms
    Réponses: 3
    Dernier message: 10/01/2005, 18h26
  4. [VB6] [MSHFlexGrid] Tri sur clic dans la première ligne
    Par degreste dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 06/03/2003, 00h42
  5. Supprimer la premiere ligne d'un fichier
    Par Kahiba dans le forum Langage
    Réponses: 7
    Dernier message: 11/02/2003, 10h18

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