Je n’arrive pas à m’expliquer le comportement de make suivant :
Cas qui marche :
STABLE_HEADER = stable.h
STABLE_OBJECT = $(STABLE_HEADER:%.h=%.h.gch)
$(STABLE_OBJECT): $(STABLE_HEADER)
$(CXX) -Winvalid-pch $(WFLAGS) $(CFLAGS) $(OFLAGS) $@ $< $(IFLAGS)
%.o: %.c $(STABLE_OBJECT)
$(CXX) $(WFLAGS) $(CFLAGS) $(OFLAGS) $@ $*.c $(IFLAGS)
que j’ai voulu transformer en :
STABLE_HEADER = stable.h
STABLE_OBJECT = $(STABLE_HEADER:%.h=%.h.gch)
%.h.gch: %.h
$(CXX) -Winvalid-pch $(WFLAGS) $(CFLAGS) $(OFLAGS) $@ $< $(IFLAGS)
%.o: %.c $(STABLE_OBJECT)
$(CXX) $(WFLAGS) $(CFLAGS) $(OFLAGS) $@ $*.c $(IFLAGS)
Et la bizarrement, cela ne marche pas.
Quelqu’un aurait-il une explication, car la je sèche !
# 1 Avril
Posté par Donk . Évalué à 1.
[^] # Re: 1 Avril
Posté par ✅ ffx . Évalué à 4.
# plus de détails
Posté par gaaaaaAab . Évalué à 2.
quel est le résultat de la commande ?
sinon, je ne suis pas trop sûr de que signifie la syntaxe %.h.gch: %.h
j'aurais plutôt écrit
.h.gch:
ou
%.gch: %h
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.