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;
 
} ///:~