#makefile #measure #gnu-make
#makefile #измерение #gnu-make
Вопрос:
Я очень новичок в makefile. Здесь у меня проблема с поиском времени для компиляции (c-кода) каждого модуля.
Операционная система: Linux make: x86_64-redhat-linux-gnu
Я использую «make» с -j
опцией.поддерживается только один Makefile с инструкцией « /usr/bin/make
«. И в recursivley есть несколько компонентов.Для каждого компонента один Config.mk поддерживается в рабочем состоянии. в некоторых модулях нет « .mk
» также я пытался отобразить время в каждом «.mk», используя «{info {дата оболочки}), но это не дало достаточных результатов, поскольку все они использовались на очень ранней стадии компиляции..
Может ли кто-нибудь помочь найти время для каждой операции make
Приветствия Murali
Комментарии:
1. Пожалуйста, покажите нам ваш основной makefile. И сообщите нам, какую ОС вы используете. И, возможно, сообщите нам свой родной язык, поскольку он не похож на английский.
2. Операционная система — Linux.
3. Я не совсем понимаю, что вы хотите измерить. Каждая отдельная цель make или весь процесс make для поиска правильного numver
-j
? Насколько я понял, я думаюtime
, это вам поможет. Замена make calls наtime make
должна дать вам несколько первых подсказок.4. извините за неясный запрос. Мера — это только «сколько времени уходит на каждую компиляцию или генерацию объектного файла из кода c». Как уже упоминалось, поддерживается и вызывается только один Makefile через » make -j «, который внутренне перебирает множество каталогов (компонентов), имеющих «config.mk » файлы для компиляции каждого модуля. Мне нужно найти «время компиляции для каждого компонента». «time make» мне не помогло. Есть ли какая-либо опция с «debug»?
Ответ №1:
Вы можете .ФАЛЬШИВЫЕ цели, которые выполняются как первые и последние цели, и распечатать дату
все: эхо "Компонент foo: сборка начата" Дата $ (MAKE) build echo "Компонент foo: сборка завершена" Дата сборка: .... ....