Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод_ПСРВ.doc
Скачиваний:
32
Добавлен:
12.02.2016
Размер:
1.6 Mб
Скачать

2. Упражнения

УПРАЖНЕНИЕ 2.1.

1) Используя команду use qcc, получите список ключей, запишите в отчет значение ключей -c, -o, -l, -V.

  1. Используя команду qnx -V определите версию компилятора используемого по умолчанию (вывод списка на экран можно досрочно остановить, нажав комбинацию клавиш Ctrl/Pause Break)

УПРАЖНЕНИЕ 2.2.

1) Наберите в редакторе программу:

main()

{

printf(«Hello, world!\n»);

}

2) Сохраните файл с именем hello.c

3) Выполните компиляцию, используя команду qcc hello.c -o hello.

4) Запустите программу из текущего директория (текущий директорий обозначается точкой (.))

./hello

УПРАЖНЕНИЕ 2.3.

1) В текстовом редакторе создайте:

Файл defs.h с содержанием:

extern void aaa();

extern void bbb();

extern void ccc();

Файл main.c с содержанием:

#include «defs.h»

int main()

{

printf(“I am main\n”);

aaa();

return 0;

}

Файл aaa.c с содержанием

#include “defs.h”

void aaa()

{

printf(“I am aaa\n”);

bbb();

}

Файл bbb.c с содержанием

#include “defs.h”

void bbb()

{

printf(“I am bbb\n”);

ccc();

}

Файл ссс.с с содержанием

#include «defs.h» void ccc()

{

printf(“I am ccc\n”);

}

2) Для того чтобы из этих файлов построить программу с именем program выполните команды:

qcc -c main.c

qcc -c aaa.c

qcc -c bbb.c

qcc -c ccc.c

qcc -o program main.o aaa.o bbb.o ccc.o

Эта последовательность команд называют сборкой проекта.

3) Запустите программу, используя команду

./program

УПРАЖНЕНИЕ 2.4.

  1. Создайте в редакторе makefile следующего содержания:

program: main.o aaa.o bbb.o ccc.o

qcc -o program

main.o: main.c defs.h

qcc -c aaa.c

aaa.o: aaa.c defs.h

qcc -c aaa.c

bbb.o: bbb.c defs.h

qcc -c bbb.c

ccc.o: ccc.c defs.h

qcc -c ccc.c

2) Выполните сборку проекта, используя команду make (предварительно удалите старую версию program).

3) Запустите программу, используя команду

./program

4) Вновь запустите утилиту make, результат прокомментируйте в отчете.

Файл makefile можно упростить, учитывая, что утилита make достаточно интеллектуальна и способна самостоятельно выбрать файлы зависимостей (с расширением *.с) если в цели указаны объектные файлы (с расширением *.о), а также самостоятельно построить и выполнить команды соответствующие цели.

5) Приведите makefile к виду:

program: main.o aaa.o bbb.o ccc.o

qcc -o program main.o aaa.o bbb.o ccc.o

main.o aaa.o bbb.o ccc.o:

6) Убедитесь, что сборка проекта с новым вариантом выполняется нормально.

7) В утилите make можно использовать макросы, которые имеют следующий синтаксис:

ПЕРЕМЕННАЯ=ЗНАЧЕНИЕ

ЗНАЧЕНИЕ может быть произвольной последовательностью символов включая пробелы и обращения к ранее определенных переменных. После объявления переменной к ней можно обратиться в формате $(ПЕРЕМЕННАЯ).

Введем переменную OBJS=main.o aaa.o bbb.o ccc.o

в результате makefile приводится к виду:

OBJS=main.o aaa.o bbb.o ccc.o

program: $(OBJS)

qcc -o program $(OBJS)

$(OBJS):

Проверьте экспериментально, что последнюю строчку в makefile можно удалить без ущерба исполнения.

Некоторые переменные уже предопределены для утилиты make. К ним относятся, например:

CC=cc - компилятор С (сс - это ссылка на qcc);

CXX=q++ - компилятор С++;

CPP=cpp –препроцессор;

LEX=lex - лексический анализатор С-программ;

RM=rm -f - команда удаления файлов.

В makefile могут присутствовать комментарии. Комментарием является любая строка, начинающаяся с символа #

8) Приведите makefile к виду:

# This is makefile

OBJS=main.o aaa.o bbb.o ccc.o

program: $(OBJS)

qcc -o program $(OBJS)

$(RM) $(OBJS)

9) Дважды запустите утилиту make. Прокомментируйте в отчете действие последней строки в makefile.