Voici un fichier d'en-tête simple pour six programmes différents. Ce Makefile fonctionnait très bien, mais j'ai ensuite changé les programmes pour inclure d'autres fichiers d'implémentation. Ce fichier Makefile doit être modifié de sorte que si les fichiers d'implémentation changent, les fichiers contenant ces fichiers d'implémentation soient recompilés.Comment ajouter des dépendances à ce fichier d'en-tête
all: load list show add delete btree
%: %.cpp
g++ $< -g -o [email protected]
Lorsque je fais g ++ -MM list.cpp, j'obtiens la sortie suivante: list.o: list.cpp bt.h insert.c btio.c btutil.c Lab2.cpp. Qu'est-ce que je suis censé faire avec ça? Cela ne crée rien. – neuromancer
Vous n'avez pas besoin de l'exécuter directement - la règle%:% .cpp le fait. La règle convertit cette ligne en un ensemble de fichiers .d qui sont ensuite inclus dans le fichier makefile. – Mark
'-MM' génère cette sortie, et' -MF' la redirige dans un fichier (se terminant par .dd). La ligne suivante exécute 'sed' pour modifier légèrement, et le renommer en' .d'. Ces derniers fichiers '.d' sont inclus dans le Makefile, et indiquent à quel fichier dépend quel autre. –