Все файлы .cpp зависят от двух файлов .h?
Вопрос
В makefile у меня есть следующая строка:
helper.cpp: dtds.h
Что гарантирует, что helper.cpp перестраивается всякий раз, когда dtds.h изменяется.Однако я хочу, чтобы ВСЕ файлы в проекте были перестроены, если изменится любой из двух других заголовочных файлов, примерно такого рода:
*.cpp: h1.h h2.h
Очевидно, что это не сработает, но я не знаю правильного способа заставить nmake делать то, что я хочу.Кто-нибудь может помочь?Я не хочу вручную указывать, что каждый отдельный файл зависит от h1.h и h2.h.
Спасибо.(Я использую nmake, входящий в состав visual studio 2005.)
Решение 2
Спасибо за твою помощь, Кристоф.Я пытался:
.cpp.obj: h1.h h2.h
И получил полезное сообщение об ошибке:
makefile(58) : fatal error U1086: inference rule cannot have dependents
В итоге я решил эту проблему, составив список файлов, которые я хотел скомпилировать, а затем добавив зависимость ко всему списку.
files = file1.obj file2.obj file3.obj
$(files): h1.h h2.h
Другие советы
Попробуй
%.cpp : h1.h h2.h
Это работает в GNU make - понятия не имею, совместим ли nmake...
Редактировать: И кстати:разве это не должно быть
helper.o : dtds.h
%.o : h1.h h2.h
В конце концов, вы же не хотите переделывать .cpp
файл (как вы создаете исходный файл?), но перекомпилируйте...
Редактировать 2: Проверьте Ссылка На NMAKE.Согласно это, что - то вроде
.cpp.obj: h1.h h2.h
может сработать...