Все файлы.cpp зависят от двух файлов.h?
В make-файле у меня есть следующая строка:
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
В итоге я решил эту проблему, составив список файлов, которые я хотел скомпилировать, а затем добавив зависимость ко всему списку.
файлы = file1.obj file2.obj file3.obj $(файлы): h1.h h2.h
Пытаться
%.cpp : h1.h h2.h
Это работает в GNU make - понятия не имею, совместим ли nmake...
Редактировать: И кстати: это не должно быть
helper.o : dtds.h
%.o : h1.h h2.h
В конце концов, вы не хотите переделывать .cpp
файл (как вы делаете исходный файл?), но перекомпилируйте...
Edit2: Проверьте ссылку NMAKE. Согласно этому, что-то вроде
.cpp.obj: h1.h h2.h
может работать...