Pregunta

En un makefile, tengo la siguiente línea:

helper.cpp: dtds.h

Lo que garantiza que helper.cpp se reconstruya cada vez que se cambie dtds.h. Sin embargo, quiero que TODOS los archivos en el proyecto sean reconstruidos si alguno de los otros dos archivos de encabezado cambia, de esta forma:

*.cpp: h1.h h2.h

Obviamente eso no funcionará, pero no conozco la manera correcta de conseguir hacer lo que quiero. ¿Alguien puede ayudar? No quiero tener que especificar manualmente que cada archivo individual depende de h1.h y h2.h.

Gracias. (Estoy usando nmake incluido con Visual Studio 2005).

¿Fue útil?

Solución 2

Gracias por tu ayuda, Christoph. Lo intenté:

.cpp.obj: h1.h h2.h

Y recibió el útil mensaje de error:

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

Terminé de resolverlo haciendo una lista de los archivos que quería compilar y luego agregando la dependencia a toda la lista.

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

Otros consejos

Probar

%.cpp : h1.h h2.h

Eso funciona en GNU make - no tengo idea si nmake es compatible ...

Editar: Y por cierto: no debería ser

helper.o : dtds.h

%.o :  h1.h h2.h

Después de todo, no quieres rehacer el archivo .cpp (¿cómo crear un archivo de origen?), pero recompilar ...

Edit2: marque Referencia NMAKE . Según esto , algo así como

.cpp.obj: h1.h h2.h

podría funcionar ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top