Я работаю над проектом с несколькими каталогами с моим makefile на один уровень выше всех. Когда я обновляю файлы и файлы кода и заголовков, а затем переделываю их, он говорит: «Ничего не нужно делать для« все ». Есть ли способ заставить make проверить все каталоги и, следовательно, понять, что некоторые компоненты необходимо переделать? Приветствия JackMakefile и файлы для обновления
ответ
Вы можете принудительно ввести подкаталоги каждый раз:
SUBDIRS = dir1 dir2
.PHONY: all
all: subdirs final_target
.PHONY: subdirs
subdirs:
for d in $(SUBDIRS); do $(MAKE) -C $$d; done
.PHONY: final_target
final_target:
echo "Do something here..."
Эта схема, чтобы ввести все подкаталоги, на самом деле являются очень распространенным явлением.
Не так ли, если бы у меня был отдельный make-файл в каждом поддире? На данный момент у меня есть только один файл. Также из любопытства, что делает команда .PHONY? Я видел, что раньше он использовался для «чистых» команд. Ура! – JMzance
@JackMedley Ах, да, это правильно. Затем вам просто нужно перечислить все файлы во всех подкаталогах как зависимости, когда это необходимо. Точка '. PHONY' сообщает Make, что его зависимости не являются реальными файлами, поэтому они всегда« построены »при ссылках. –
- 1. Makefile и файлы в каталоге
- 2. Сгенерировать включить файлы для Makefile тем же Makefile
- 3. Makefile удалить файлы
- 4. makefile целевые файлы
- 5. Makefile, объединяющий файлы fltk и C++
- 6. Создайте файлы зависимостей в Makefile
- 7. makefile: как указать файлы заголовков
- 8. Makefile всегда компилирует определенные файлы
- 9. Открытые файлы и обновления файлов
- 10. включают файлы в cl makefile
- 11. Makefile для CUDA и C
- 12. Makefile не находит исходные файлы
- 13. Makefile не чистит объектные файлы
- 14. Переименовать сгенерированные файлы в Makefile
- 15. GNU Makefile - общий Makefile для нескольких целей
- 16. Makefile для всех файлов
- 17. Makefile для Gtk + и cuda
- 18. Makefile для Yacc и прогибается
- 19. Makefile для компиляции файлов c и cpp
- 20. Генератор Makefile для C++?
- 21. Makefile для множественных .c и .h файлов
- 22. Doxygen для разбора Makefile
- 23. Записать makefile для .cpp и .hpp C++
- 24. Включить файлы C в C + + makefile
- 25. My Makefile всегда создает все файлы
- 26. Makefile для dotfiles (graphviz)
- 27. Makefile, исполняемые и объектные файлы в разных каталогах
- 28. Как включить файлы ресурсов в Theos makefile?
- 29. java makefile создает файлы .class вместо файла
- 30. Makefile VPATH% .o не находя OBJ файлы
Задачи ваших целей Makefile зависят от всех исходных и заголовочных файлов, из которых они построены? Это именно то, что делает. –