25Fermer27
ZephLe 07/11/2011 à 20:46
nitro (./21) :
- et enfin, tu peux faire générer les dépendances de tes .o automatiquement par gcc, il suffit de rajouter '-MMD -MP' dans tes CXXFLAGS, ce qui aura pour effet de générer un bout de makefile pour chaque .o avec les dépendances

J'en profite pour squatter le topic de Folco tongue

Le switch -M génère effectivement les règles de dépendance, mais pour une raison qui m'échappe il supprime tous les chemins relatifs dans les noms des règles. Du coup un "gcc -MM src/main.c" va sortir quelque chose dans le genre :

main.o: src/main.c src/header.h
Mais perso je place les .o à côté de leurs .c respectifs, et comme la règle s'appelle "main.o" au lieu de "src/main.o", elle ne fonctionne pas. Il y a bien un switch "-MT" qui permet de redéfinir le nom de la règle, mais du coup il faudrait faire un appel à gcc par fichier, ce qui n'est pas spécialement pratique (je ne sais même pas si c'est faisable en Makefile "pur" sans script shell).

Il y a une solution ?