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 court mais complexe


Sujet :

Systèmes de compilation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 294
    Par défaut makefile court mais complexe
    Boujour,

    Je dispose des fichiers Permutation.cpp, TestPerm.cpp et Permutation.h.
    Pouvez-vous m'expliquez en détail le fonctionnement du makefile suivant:

    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
    CXXFLAGS= -O4 -Wall -Weffc++
     
    all: TestPerm
     
    TestPerm: TestPerm.o Permutation.o
    	$(CXX) $^  -o  $@ 
     
    clean:
    	-rm *.o *~ TestPerm
     
    ## les dependances pour obliger a relancer lancer la compilation
    ## si l'on modifie un fichier inclus. 
     
    TestPerm.o: Permutation.h
    Permutation.o: Permutation.h
    Merci d'avance.

  2. #2
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par défaut
    Tout est la http://gl.developpez.com/tutoriel/outil/makefile/

    A noter que le programme makefile doit définir certaines variable par defaut (comme CXX). Car sinon ça devrait pas marcher:
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Par défaut
    CXX est une variable prédéfinie par make.

    http://www.gnu.org/software/make/man...#index-CXX-868

    Le Makefile en question est donc correct.

  4. #4
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    Il repose surtout sur les règles implicites définie par défaut pour les makefiles. La compilation qui utilise $CXXFLAGS et $CXX, etc.
    (N.B.: avec mingw, je ne suis pas sûr que cela aurait marchait, j'ai souvent eu des mauvaises surprises avec leur version de make)
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  5. #5
    Membre chevronné
    Inscrit en
    Juillet 2012
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : Juillet 2012
    Messages : 231
    Par défaut
    Citation Envoyé par Luc Hermitte Voir le message
    (N.B.: avec mingw, je ne suis pas sûr que cela aurait marchait, j'ai souvent eu des mauvaises surprises avec leur version de make)
    On a aussi parfois des surprises entre Linux et BSD.
    Car make POSIX != GNU Make.
    Ce dernier apporte pas mal d’extension que l’on utilise plus ou moins consciemment, d’où les mauvaises surprises.

  6. #6
    Membre très actif
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 294
    Par défaut
    Bonjour,

    S^ correspond à $(CXXFLAGS).
    $@ correspond à Permutation.cpp.

    all: TestPerm indiqu'il faut appliquer TestPerm:

    TestPerm: TestPerm.o Permutation.ova appliquer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TestPerm.o: Permutation.h
    Permutation.o: Permutation.h
    Ce qui ne marche pas car Permutation.h va etre inclus deux fois.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 31/05/2010, 22h01
  2. Algo chemin le + court mais devant passer par quelques points donnés
    Par egu07 dans le forum Intelligence artificielle
    Réponses: 15
    Dernier message: 10/09/2008, 19h22
  3. Problème d'un Makefile complexe erroné
    Par domiq44 dans le forum Systèmes de compilation
    Réponses: 6
    Dernier message: 18/10/2007, 09h12
  4. Récupérer PJ mail outlook mais + complexe
    Par Gary_Stoupy dans le forum Access
    Réponses: 2
    Dernier message: 17/01/2007, 15h50
  5. [XSD] Complexe de type all mais avec maxoccur
    Par Je@nb dans le forum Valider
    Réponses: 3
    Dernier message: 06/02/2005, 19h18

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