Question

Dans un fichier makefile, j'ai la ligne suivante:

helper.cpp: dtds.h

Ce qui garantit que helper.cpp est reconstruit chaque fois que dtds.h est modifié. Cependant, je veux que TOUS les fichiers du projet soient reconstruits si l’un ou l’autre des deux autres fichiers d’en-tête change, comme ceci:

*.cpp: h1.h h2.h

Évidemment, cela ne fonctionnera pas, mais je ne sais pas comment faire pour que nmake fasse ce que je veux. Quelqu'un peut aider? Je ne veux pas avoir à spécifier manuellement que chaque fichier individuel dépend de h1.h et h2.h.

Merci. (J'utilise nmake inclus dans Visual Studio 2005.)

Était-ce utile?

La solution 2

Merci pour votre aide, Christoph. J'ai essayé:

.cpp.obj: h1.h h2.h

Et j'ai reçu le message d'erreur utile:

makefile(58) : fatal error U1086: inference rule cannot have dependents

J'ai fini par le résoudre en faisant une liste des fichiers que je voulais compiler, puis en ajoutant la dépendance à la liste complète.

files = file1.obj file2.obj file3.obj
$(files): h1.h h2.h

Autres conseils

Essayez

%.cpp : h1.h h2.h

Cela fonctionne dans GNU make - aucune idée si nmake est compatible ...

Modifier: Et d'ailleurs: cela ne devrait-il pas être

helper.o : dtds.h

%.o :  h1.h h2.h

Après tout, vous ne voulez pas refaire le fichier .cpp (comment créez-vous un fichier source?), mais recompilez ...

Edit2: Vérifiez la Référence NMAKE . Selon ceci , quelque chose comme

.cpp.obj: h1.h h2.h

pourrait fonctionner ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top