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
Code : Sélectionner tout - Visualiser dans une fenêtre à part make
PROBLEME:
Code : Sélectionner tout - Visualiser dans une fenêtre à part make DEBUG=on
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:
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 # 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
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; } ///:~
Partager