Bonjour,

je viens d'écrire ce makefile tout simple, qui me permet de créer les .exe correspondant aux .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
21
22
23
24
25
26
GCC_C_FLAGS = -c -Wall -Werror -pedantic -pedantic-errors -std=c++98
GCC_L_FLAGS = 
 
CC = g++ $(GCC_C_FLAGS) $< -o $@
LL = g++ $(GCC_L_FLAGS) $< -o $@
 
SRC = $(wildcard *.cpp)
OBJ = $(SRC:.cpp=.o)
EXE = $(SRC:.cpp=.exe)
 
all: $(EXE)
	@echo --- --- Tous les executables ont ete crees --- ---
 
%.exe: %.o
	@$(LL)
	@echo "- $@"
 
 
%.o: %.cpp
	@$(CC)
 
clean:
	rm -f *.o
 
distclean: clean
	rm -f *.exe
Mais le résultat n'est pas tout à fait celui que j'attendais, quand je tapes make (avec juste le Makefile et les .cpp présents) voilà ce que ça donne :
$ make
- ex1.exe
- ex2.exe
--- --- Tous les executables ont ete crees --- ---
rm ex1.o ex2.o
$
Je ne vois pas d'où vient ce rm ... Et d'ailleurs ce n'est pas juste un bug d'affichage, les .o sont bien effacés.


Si quelqu'un a une idée ... je suis perplexe là.

ps: je me demande aussi comment ne pas utiser l'extension .exe pour les éxécutables, tout en gardant la génération automatique de tous les executables