Если я создаю один проект, содержащий множество подкаталогов и каждый из которых соответствует одному конкретному модулю, например A, B, C, D, E, F и исполняемым объектам E1, E2, E3 , Каждый модуль соответствует одному * .a, используемому исполняемой мишенью. Моя проблема заключается в том, как создавать зависимости между модулями и модулями и зависимости между модулями и исполняемыми целями. То есть, если E1 использует один файл A, тогда E1 должен зависеть от A, так как мне нужна ссылка A.a для создания E1.
Как мне создать свой Makefile для создания такого типа зависимости? Спасибо, и я новичок в Makefile.Makefile с несколькими каталогами/зависимость модуля
ответ
Я предполагаю, что вы используете GNU Make. Вы должны определить «консервированный рецепт», который инкапсулирует, как вы переходите от библиотек к исполняемому файлу. Рецепт должен использовать «автоматические переменные», чтобы он не зависел от конкретных файлов. Поскольку это только один рецепт, он отлаживается один раз, а затем может использоваться без дополнительных ошибок.
Затем вы пишите правила, в которых вы явно указываете целевые и необходимые библиотеки. Поскольку он настолько явчен, он очень ошибочен. Затем вы используете консервированный рецепт. Рецепт будет жаловаться, если вы испортили линию обязательных условий.
Приведенный ниже пример.
Как правило, у вас будут другие предпосылки помимо библиотек. Например, вы всегда должны иметь список используемых файлов make-файлов. Вам также может потребоваться обеспечить создание каталога цели. Вот почему в рецепте ниже я использовал фильтр.
Обратитесь к руководству по GNU, чтобы ознакомиться со всеми условиями, необъяснимыми здесь.
define recipe=
link [email protected] $(filter %.a, $^)
endef
E1: A.a (other prerequisites)
$(recipe)
- 1. Makefile для модуля ядра Linux с несколькими подкаталогами
- 2. Makefile с несколькими подмодулями
- 3. Makefile с несколькими целями
- 4. Makefile с несколькими каталогами
- 5. Цель Makefile с несколькими зависимостями
- 6. Makefile с несколькими исполняемыми файлами
- 7. модуля ядра с несколькими файлами - неизвестный символ
- 8. Makefile для базового модуля ядра
- 9. Программирование модуля ядра Linux: makefile
- 10. Makefile для Linux-модуля ядра?
- 11. Имя файла makefile модуля ядра
- 12. Установка модуля с несколькими модулями
- 13. Makefile с несколькими значениями для параметра
- 14. Отдельная компиляция с несколькими источниками по Makefile
- 15. Makefile с несколькими каталогами и зависимостями
- 16. Makefile с несколькими зависимостями в дереве каталогов
- 17. Makefile шаблонное правило с несколькими целями
- 18. Соответствие шаблону Makefile с несколькими исполняемыми целями
- 19. makefile - сборка файлов с несколькими целями
- 20. makefile с несколькими заданиями -j и подкаталогами
- 21. makefile с несколькими файлами и зависимостями
- 22. Makefile с несколькими зависимостями для одного файла
- 23. perl Makefile Makefile с подмодулями
- 24. Как организовать Makefile для компиляции модуля ядра с несколькими файлами .c?
- 25. написание Makefile для компиляции конкретного модуля
- 26. Как написать makefile для моего модуля
- 27. Использование модуля rabbitmq_user с несколькими разрешениями
- 28. Makefile с несколькими целями и создает каталог с исполняемым файлом
- 29. GCC Makefile на Linux с несколькими * .c файлов
- 30. Как создать Makefile для java с несколькими файловыми каталогами
Вы спрашиваете, как написать правило для E1, чтобы A.a является обязательным условием E1? – Beta
Да, но я надеюсь создать это правило автоматически, вместо того, чтобы писать его сам, если я ошибаюсь в этой зависимости. Это возможно? Или я просто хочу знать, как писать Makefile в большом проекте, содержащем несколько библиотек и исполняемых файлов, в которых каждый исполняемый файл зависит от некоторых из lib. Я думал, что он будет подвержен ошибкам при написании этих зависимостей вручную. спасибо – user2875245
Эти зависимости можно обрабатывать автоматически, но это сложно. На каком языке вы используете? И есть ли у вас разумное соглашение об именах (например, «A/A.a')? – Beta