yop,
Je me lance dans les Makefile sous l'impulsion de Zephyr (merci à lui, quand je maitriserai ça devrait être super ^^).
J'ai lu plusieurs tutos, dont celui-ci :
http://gl.developpez.com/tutoriel/outil/makefile/Au paragraphe 4 (les règles d'inférence), on lit ceci (entre les deux exemples de Makefile) :
Comme le montre clairement l'exemple précédent, main.o n'est plus reconstruit si hello.h est modifié. Il est possible de préciser les dépendances séparément des règles d'inférence et de rétablir le fonctionnement original, pour obtenir finalement :
Et on voit, dans le second Makefile, que la ligne suivante est rajoutée :
main.o: hello.hVoici donc le Makefile sur lequel je bosse :
Makefile
CC=gcc
AR=ar
CXXFLAGS=-W -Wall -extra -pedantic -I..\include
LDFLAGS=
EXEC=FLIS.a
SRC= $(wildcard *.cpp)
OBJ= $(SRC:.cpp=.o)
all: $(EXEC)
FLIS.a: $(OBJ)
$(AR) cr $@ $^
Dispatcher.o: CommObject.hpp
CommObject.o: Dispatcher.hpp
%.o: %.cpp
$(CC) -o $@ -c $< $(CXXFLAGS)
clean:
rm *.o
Mon problème principal : quand je lance Make, il me dit ça :
Aucune règle pour fabriquer la cible "CommObject.hpp", nécessaire pour fabriquer Dispatcher.o
Ok, je vois donc bien où le problème se situe. Seulement, pourquoi ne veut-il pas de ça, vu que je crois vraiment avoir fait comme dans le tuto ? Pourquoi n'utilise-t-il pas la règle d'inférence donnée à la ligne du dessous pour fabriquer Dispatcher.o ?
Mon second problème est que clean ne marche pas, mais bon je m'en fous pour le moment, je chercherai un peu plus tard.
Merci d'avance?
