Si Makefile em> changements, faites reconstruire toutes les cibles à droite? P>
Mais comment dire faire strud> que si après Makefile em> modifié, il doit exécuter ou comment instruire faire de gérer une autre commande dans cette situation? Dois-je écrire un type spécial de cible? P> créer clairement code>, puis
faire code> ? p>
3 Réponses :
vous pourrait em> essayer ceci: Je ne suis pas un faire code> expert donc je ne sais pas si c'est une horrible hack, mais cela a fonctionné dans mes tests limités; -) p> p>
Cela va se casser pour des constructions parallèles (avec -j code>), car il peut exécuter
créer un code> en même temps que celui-ci construit pour
Yourmainttarget code>.
^ "Cela va se casser pour des constructions parallèles" correctes. Pour corriger, ajoutez une dépendance à Yourmainttarget code> comme:
Yourmainttarget: Makefile.Uptodate
.O code> fichiers pour compiler le code C / C ++ ou quelque chose. Cela le forcera à résoudre les commandes sous la cible Code> Makefile. / Code> avant de démarrer la version de
Yourmainttarget code> ou de ses dépendances, ce qui permet de finir le nettoyage avant par ex. Compiler quelque chose ou courir n'importe quoi.
brut mais efficace (je ne peux penser à rien de plus élégant):
Je ne pense pas que vous ayez besoin de $ (make) code> à la fin; Cela devrait être traité par l'entrée initiale du maquillage. Droit? Clever avec
Inclure code> cependant!
Je pense que vous voulez exécuter automatiquement, car vous voulez que certaines cibles soient reconstruites chaque fois que la marque est appelée. Cela peut être atteint en ajoutant une dépendance nommée Force code> à la règle dont vous souhaitez construire la cible, puis définissez
Force code> comme ceci: c.-à-d. Aucune règle et aucune dépendance.
%.o : %.cpp FORCE
$(CXX) -c $(CXXFLAGS) $< -o $@
Utilisez-vous GNU FAIT UNIQUEMENT ou utilisez-vous un autre programme?
Ce n'est pas vrai que faire des reconstitutions après une modification du makefile - voir Stackoverflow.com/Questtions/3871444/...