¿Todos los archivos .cpp dependen de dos archivos .h?
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).
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 ...