Аппаратные и программные



Download 3,23 Mb.
Pdf ko'rish
bet149/179
Sana24.02.2022
Hajmi3,23 Mb.
#234030
TuriУчебное пособие
1   ...   145   146   147   148   149   150   151   152   ...   179
5.4 Утилита make 
Утилита make, как известно, используется для сборки сравнительно 
больших проектов. Раньше, когда компьютеры не обладали такими 
вычислительными мощностями как сейчас, время компиляции исходных 
текстов было настолько велико, что возникла необходимость в раздельной и 
выборочной компиляции. В чём суть этой раздельной компиляции? Процесс 
разбивался на два этапа: превращение исходных текстов в объектные модули и 
сборка этих объектных модулей в загрузочный модуль. Далее, если 
производить компиляцию выборочно, то есть если не компилировать все 
исходные тексты подряд, а компилировать только те, которые претерпели 
изменения, можно получить существенную экономию времени сборки всего 
проекта. 
Для того, чтобы прочувствовать необходимость такой выборочной 
компиляции 
сейчас, 
пожалуй, 
необходимо 
скомпилировать 
что-то 
действительно большое. К примеру, ядро операционной системы Linux, или 
собрать из исходных текстов Open Office. Правда, помня о такой 
маркетинговой уловке производителей железа как закон Мура, я полагаю, с 
неуклонным ростом вычислительных ресурсов этот пример станет не очень 
удачным уже достаточно скоро. 
Зачем же нам тогда make, спросите вы? Ведь большинство проектов для 
встроенных систем весьма аскетичны, а скомпилировать три десятка модулей 
на C или C++ современный компьютер может за считанные секунды? 


237 
Ответ очень прост: make достаточно мощный, специализированный 
инструмент для работы с проектами. 
Со специализацией инструментов я столкнулся в полной мере, когда 
попробовал использовать язык Perl для обработки текстов вместо обычного на 
тот момент для меня C++. Результат меня тогда поразил. За три дня на язке Perl 
был выполнен объем работы, которые потребовал от меня две недели на C++! 
Это при том, что C++ я уже использовал давно, а Perl видел в первый раз в 
жизни. Perl специально создавали как средство для обработки текстов. C++ не 
помогла библиотека STL, хотя вроде как набор механизмов у инструментов был 
примерно одинаковый. Разве что в C++ у меня не использовались библиотеки 
для разбора регулярных выражений. 
В чём же оказалась сила Perl? В первую очередь – в простоте. Краткая 
синтакическая конструкция, вызывающая у новичка головную боль и мысли о 
распечатке дампа памяти, делает то, что на C++ потребует написания полутора 
десятков строк текста. Нам известно, что уровень языка не влияет на 
количество ошибок. Влияние оказывает количество строк, то есть чем больше 
строк, тем больше ошибок и наоборот. В программе на Perl строк было мало и я 
продвигался к завершению проекта быстрыми темпами.
Итак, вернемся к make. Основная цель утилиты – сократить время, 
необходимое для описания того, что надо сделать с проектом. Предполагается 
при этом, что вы работаете с проектом самостоятельно, без каких либо IDE. 
Что нужно делать с проектом во время сборки? 
• Убрать старые и ненужные файлы, объектные модули, всякий мусор, 
исполняемые файлы и т.д. Это полезно делать перед архивацией 
проекта или перед отдачей проекта системе контроля версий. 
• Запаковать проект в архив, при этом желательно переписать его в пару-
тройку мест, а чтобы не запутаться – назвать архив так же, как 
называется проект. 
• Скомпилировать исходные тексты. 
• Собрать загрузочный модуль. 
• Вызвать необходимые конвертеры для получения формата, 
удобоваримого для доставки в контроллер. 
• Вызвать программу для доставки загрузочного модуля в контроллер. 
Ко всему этому хочется добавить, что проектов у вас много, а вы один. 
Большинство описанных выше действий вполне себе стандартно и хочется 
вынести их за скобки. Утилита make позволяет описать параметры сборки 
проекта в виде переменных, а из этих переменных задать последовательность 
действий. Получается, что переменные от проекта к проекту практически не 
меняются, а вот их содержимое может изменяться. 
Что мы можем указать в виде таких переменных? Попробуем привести 
список. 


238 
• Имя проекта. Это имя можно использовать как имя архива, а также как 
имя исполняемого или загрузочного модуля. 
• Дополнительные части для имени проекта, такие как дата и время 
компиляции, порядковый номер сборки, тип проекта. 
• Имя компилятора. В области встроенных систем считается вполне 
нормальным частый переход на разные микроконтроллеры и, 
соответственно, использование разных компиляторов раз в несколько 
месяцев. 
• Опции компилятора. Флаги оптимизации, специфические опции, 
местоположение заголовочных файлов и т.п. 
• Опции линкера. Наименование библиотек, адреса памяти программ и 
кода и т.д. 
• Архиватор и ключи для архивации. 
• Имя программы и ее ключи для доставки ПО в контроллер. 
• Список этот далеко не полный, его можно продолжать. 

Download 3,23 Mb.

Do'stlaringiz bilan baham:
1   ...   145   146   147   148   149   150   151   152   ...   179




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish