Составители:
Рубрика:
36
Для сборки проекта при помощи GNU make необходимо выполнить следующие шаги:
· выполните команду make
o make ищет файлы с названием makefile, Makefile...
o будет собрана первая по порядку описания в файле цель (target)
· выполните команду
make -f Makefile.3
в качестве makefile будет использоваться файл Makefile.3
· выполните команду
make -f Makefile.3 clean
будет собрана цель clean
· выполните команду
make -f Makefile.3 -j 2
Сборка будет выполняться параллельно, т. е. make будет запускать одновременно по две команды.
4.6.4.2. Создание простого Makefile
Задание находится в каталоге lab02/04/task файла labMeeGo.rar
:
Задание: По примерам make-файлов в подкаталоге sample написать make-файлы для проекта “ncurses
Snake” в подкаталоге task.
Этап 0
Руководствуясь примером «Пример Makefile.0» в подкаталоге lab02/04/task файла labMeeGo.rar,
создайте makefile для проекта в подкаталоге task
· Формат правила:
target: prerequisite1 ... prerequisiteN
recipe
…
o target – какую цель (какой файл) мы хотим получить на данном этапе
o prerequisites – какие цели (какие другие файлы) нам для этого требуются
o recipe – какие команды надо выполнить, чтоб получить target
Этап 1
Руководствуясь примером «Пример Makefile.1» в подкаталоге lab02/04/task файла labMeeGo.rar
,
создайте makefile для проекта в подкаталоге task
· Добавляем цели для сборки всего проекта и для удаления результатов предыдущей сборки,
традиционно называющиеся all и clean. Цели all и clean объявляются как .PHONY: им не
соответствуют реальные файлы. Это избавит нас от неприятностей, если в директории сборки
окажутся файлы с такими названиями.
· В командах используем особые переменные:
@ – разворачивается в название цели
< – разворачивается в первый элемент списка реквизитов
^ - разворачивается в список реквизитов.
Этап 2
Руководствуясь примером «Пример Makefile.2» в подкаталоге lab02/04/task файла labMeeGo.rar
,
создайте makefile для проекта в подкаталоге task
· Параметризуем команды сборки при помощи переменных. Запустите:
make -f Makefile.2 CFLAGS='-O0 -g'
· Убедитесь, что компиляция будет запускаться именно с указанными ключами -O0 и -g.
Страницы
- « первая
- ‹ предыдущая
- …
- 34
- 35
- 36
- 37
- 38
- …
- следующая ›
- последняя »
