Все файлы.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

может работать...

Другие вопросы по тегам