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 :

Déboguage avec un Makefile


Sujet :

C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2010
    Messages : 8
    Points : 10
    Points
    10
    Par défaut Déboguage avec un Makefile
    Bonjour à tous.

    Je viens de commencer à apprendre le c++.

    J'ai créé un makefile qui permet de compiler un programme en version déboguage et en version normale.
    Il suffit de taper
    ou
    PROBLEME:
    Si je compile en mode DEBUG alors que j'ai déjà compilé en mode normal,
    la compilation ne se fait pas (normal: les relations de précédence dans le makefile sont respectées, pas besoin de recompiler).
    Je cherche une manière propre de forcer la compilation quand c'est nécessaire.

    Je me suis creusé la tête, j'ai insulté mon ordinateur, je me suis même mis en position foetale... rien n'y fait .

    Un grand merci à celui ou celle qui pourra m'aider à trouver une solution.

    PS: le code:

    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
     
     
    # essai de makefile
     
    DEBUG =
    DEBUG_FLAG =
     
    ifeq ($(DEBUG), on)
    DEBUG_FLAG = -d
    endif
     
    .SUFFIXES: .o .cpp
    .cpp.o:
    	g++ -c $< 
     
    prog1: StringizingExpressions.o
    	g++  $(DEBUG_FLAG) -o prog1 StringizingExpressions.o
    	./prog1
     
    StringizingExpressions.o: StringizingExpressions.cpp
    StringizingExpressions.cpp :
    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
     
    //: C03:StringizingExpressions.cpp
    #include <iostream>
    using namespace std;
     
    #ifdef DEBUG
    #define P(A) cout << #A << ": " << (A) << endl;
    #endif
     
    int main() {
     
      int a = 1, b = 2, c = 3;
      #ifdef DEBUG
      cout<<"Mode DEBUG"<<endl;
      P(a); P(b); P(c);
      #endif
     
      cout<<"Execution du programme"<<endl;
     
    } ///:~

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 082
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 082
    Points : 12 139
    Points
    12 139
    Par défaut
    La solution classique est d'avoir des répertoires différents pour les résultats de compilations en fonction de ce paramètre.
    Genre des répertoires "Debug" quand DEBUG=on et des répertoires "Release" sinon.*

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2010
    Messages : 8
    Points : 10
    Points
    10
    Par défaut
    Ok ça parait plein de bon sens.
    Merci beaucoup bacelar, je vais implémenter ça.

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

Discussions similaires

  1. Compiler avec un makefile
    Par _SamSoft_ dans le forum Systèmes de compilation
    Réponses: 15
    Dernier message: 27/05/2007, 12h01
  2. [Makefile] GCC sous Linux : /usr/bin/ld: cannot find -lsocket
    Par erroneus dans le forum Systèmes de compilation
    Réponses: 1
    Dernier message: 25/05/2007, 16h26
  3. Problème avec un Makefile
    Par _kal_ dans le forum Linux
    Réponses: 1
    Dernier message: 03/08/2006, 19h12
  4. problème avec perl Makefile.PL
    Par flores dans le forum Modules
    Réponses: 2
    Dernier message: 30/10/2005, 19h09
  5. Compilation avec un Makefile
    Par Mau dans le forum GTK+ avec C & C++
    Réponses: 3
    Dernier message: 28/02/2003, 11h30

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