Читайте также:
|
|
Утилита Make используется для автоматизации разработки программ. Для этого в текстовом файле с именем makefile указывается следующая информация:
- целевые файлы (цели), которые необходимо построить;
- правила для их построения;
- зависимости, определяющие когда данную цель необходимо перестроить заново.
Так, для программы из задания 2.2 makefile может иметь следующий вид:
CFLAGS=-c
CC=gcc
obr: main.o obr.o
<Tab> $(CC) -o obr main.o obr.o
main.o: main.c
<Tab> $(CC) $(CFLAGS) main.c
obr.o: obr.c
<Tab> $(CC) $(CFLAGS) obr.c
Здесь слева от ': ' указана цель, справа - ее зависимости. Правило для построения цели указано на следующей строке, которая должна начинаться с символа табуляции. CC и CFLAGS - переменные утилиты Make (в данном примере CC задает имя компилятора, CFLAGS - опцию компилятора). Значение для переменной может быть задано в файле makefile (как в примере) и/или в командной строке (например, $make CC=g++).
После подготовки файла makefile для создания исполняемой программы достаточно ввести команду
$make или
$make имя_make_файла (если имя_make_файла отлично от makefile)
По этой команде утилита Make выполнит файл makefile из текущего каталога и автоматически перетранслирует только те файлы, которые необходимо.
Задание 3.
3.1. Создайте файл makefile для программы из задания 2.2, предварительно удалив файлы *.o и obr из текущего каталога. Затем выполните команду
$make
Запишите в отчет текст файла makefile с пояснениями и команды, выполненные утилитой Make.
3.2. Незначительно модифицируйте файл obr.c, выполните команду $make и запишите команды, выполненные утилитой Make.
3.3. Выполните команду $make, задав в командной строке через переменную CC другое имя компилятора - g++.
Доступ к параметрам командной строки
При запуске программы в командной строке после имени программы могут указываться параметры, называемые параметрами (аргументами) командной строки. Они разделяются пробелами или, если параметры сами содержат пробелы, заключаются в апострофы. Для доступа к этим параметрам в программе на языке С заголовок функции main должен содержать два параметра (рис. 2): количество параметров (argc) и массив указателей на строки (argv), оканчивающийся указателем NULL. i -ая строка является значением i- го параметра, при этом строка с номером 0 содержит имя программы.
Задание 4. Выполните следующие три примера, протестируйте их с параметрами, запишите в отчет текст примеров и результаты их тестирования.
4.1.
/* Ex4_1.c Печать параметров командной строки*/
#include <stdio.h>
main (int argc, char *argv[])
{ if (argc < 2)
{ printf(“Usage: %s parameter\n”, argv[0]);
exit (1);
}
printf("Starting program %s \n", argv[0]);
printf("with %d parameter(s)\n", argc-1);
printf("First parameter is %s\n", argv[1]);
exit (0);
}
4.2. Измените предыдущий пример в Ex4_2.c, в котором задается пераметр целого типа. Для преобразования строки в целое число используйте функцию atoi.
ПРИМЕЧАНИЕ. Получить информацию о стандартных функциях С можно по команде $info libc.
4.3.
/* Ex4_3.c Печать произвольного числа параметров */
#include <stdio.h>
main(int argc, char *argv[])
{ for (; *argv; ++argv)
printf("%s\n", *argv);
}
![]() |
Соглашение Linux о параметрах командной строки. Стандартные программы обычно придерживаются следующих соглашений. Все параметры командной строки делятся на опции, или флаги, ипрочие параметры. Опции модифицируют работу программы, в то время как прочие параметры служат для передачи входных данных. В свою очередь, опции могут быть двух видов:
- Короткие опции состоят из одного знака 'минус' и одного символа. Короткие опции легче набирать.
- Длинные опции состоят из двух подряд идущих знаков 'минус' и ряда символов. Длинные опции легче запоминать.
Обычно программы поддерживают обе формы опций, например, -h и --help.
Дата добавления: 2014-12-18; просмотров: 112 | Поможем написать вашу работу | Нарушение авторских прав |