Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

методичка-1

.pdf
Скачиваний:
11
Добавлен:
28.03.2015
Размер:
309.92 Кб
Скачать

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ - УЧЕБНО-НАУЧНО- ПРОИЗВОДСТВЕННЫЙ КОМПЛЕКС» ЕСТЕСТВЕННО-НАУЧНЫЙ ФАКУЛЬТЕТ

Кафедра «Прикладная математика и информатика»

В.Г. Абашин, В.Ю. Преснецова

ИНФОРМАТИКА. КРОССПЛАТФОРМЕННЫЕ ИНСТРУМЕНТЫ ДЛЯ СОЗДАНИЯ ПРИКЛАДНЫХ ПРОГРАММ

Методические указания по выполнению лабораторных работ

Дисциплина – «Информатика» Для технических направлений

Допущено ФГБОУ ВПО «Госуниверситет - УНПК» для использования в учебном процессе в качестве методических указаний для высшего профессионального образования

Орел 2012

3

Авторы: канд. техн. наук, доц. каф. ПМиИ

В.Г. Абашин

аспирант каф. ПМиИ

В.Ю. Преснецова

Рецензент: канд. техн. наук, доц. каф. ПМиИ

Е.Г.

Демина

 

Методические указания содержат теоретический материал по изучению компиляторов GCC и G++, а также требования по оформлению и выполнению лабораторных работ. Для освоения излагаемого материала требуется умение работать с файловой системой Windows или Linux, уметь работать с текстовыми редакторами, устанавливать программы, работать с командной строкой и владеть основами языка С или С++.

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

Редактор А.А. Федотов Технический редактор Т.Г. Денисова

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Государственный университет - учебно-научно- производственный комплекс»

Лицензия ИД № 00670 от 05.01.2000 г.

Подписано к печати 01.12.2011 г. Формат 60x90 1/16. Усл. печ. л. 2,0. Тираж 36 экз.

Заказ №________

Отпечатано с готового оригинал-макета на полиграфической базе ФГБОУ ВПО «Госуниверситет - УНПК»,

302030, г. Орел, ул. Московская, 65.

© ФГБОУ ВПО «Госуниверситет - УНПК», 2012

4

 

СОДЕРЖАНИЕ

 

Введение...................................................................................................

6

1.

Компилятор GCC.................................................................................

7

2.

Компилятор G++................................................................................

10

3.

Автоматизация компиляции и сборки программ с помощью

 

утилиты make.........................................................................................

12

4.

Отладчик gdb......................................................................................

15

5.

Средства обеспечения переносимости и распространения

 

Makefile ..................................................................................................

19

7.

Задания для самостоятельного выполнения....................................

27

Заключение.............................................................................................

31

Список литературы................................................................................

32

Приложение 1. Список ключей компиляторов GCC и G++ ...............

33

Приложение 2. Список команд для отладчика gdb.............................

34

5

Введение

Компилятор GCC распространяется на условиях лицензии GNU.

Проект GNU был основан в 1984 году Ричардом Столлманом. С по-

мощью этого проекта программисты смогли узаконить сотрудничест-

во между собой для разработки некоммерческого программного обеспечения (ПО). Лицензия этого проекта не позволяет присваивать кому-то эксклюзивные права на ПО. С первых дней в основной пакет ПО входит набор инструментов для всех этапов программирования. К

этим инструментам относятся компиляторы GCC, G++, отладчик gdb,

утилиты make, configure. Несмотря на то, что общепринятым является использование инструментов GNU в среде Linux, их использование будет рассматриваться и в среде Windows. Для работы с инструмен-

тарием в Windows необходимо произвести установку пакета MinGW

идобавить к переменной среды окружения Path значение

c:\MinGW\bin.

6

1. Компилятор GCC

Изначально аббревиатура GCC означала GNU C Compiler, но с добавлением компиляторов для языков C++, Java, Ada и др. её значе-

ние изменилось на GNU Compiler Collection. Назначение компилятора языка С из набора GCC, преобразование файлов с исходным кодом программы на языке С в исполняемые файлы. Все операции с компи-

лятором производятся из командной строки. На сегодняшний момент существуют около десятка сред, представляющих графический ин-

терфейс для работы с GCC и другими описываемыми инструментами,

но в обучающих целях будет рассмотрена работа именно из команд-

ной строки.

Для создания исполняемого файла необходим текстовый редак-

тор. Если используется операционная система (ОС) Linux, используй-

те редактор vi или emacs. Для графического режима используйте

Gedit, KWrite, Kate. В ОС Windows используйте текстовый редактор

"Edit" или редактор с оконным интерфейсом "Блокнот".

Вначале создайте папку в доступном месте с именем HW. В

описываемом примере использовалась папка C:\HW. Для создания папки можно использовать команду mkdir (mkdir c:\HW). Для перехо-

да в каталог используете команду cd (cd c:\HW). Создадим текстовый файл в папке HW, и назовем его helloworld.c. Запишем в файл сле-

дующий код:

#include <stdio.h>

int main(void) {

printf("Hello world!\n");

return(0);

}

Обратите внимание что по стандарту языка С, последняя строка должна быть пустой. Для преобразования текстового файла в испол-

7

няемый наберите в командной строке (консоле):

gcc helloworld.c

Если компилятор установлен правильно, то после введенной ко-

манды появится приглашение командной строки. В папке HW должен появится исполняемый файл. В Linux он будет называться a.out или a.

В Windows он будет называться a.exe. Для проверки изменений со-

держимого каталога используйте команды ls или dir в Linux или dir в Windows.

Для выполнения созданной программы наберите в командной строке её имя. Для Linux выполните команду: ./a.out или ./a,

для Windows a.exe. В результате выполнения команды на экран бу-

дет выведена фраза:

Hello world!

Чтобы задать название получаемого исполняемого файла

(HW.exe), для компиляции используйте команду для Windows:

gcc helloworld.c -o HW.exe

Для Linux используйте команду:

gcc helloworld.c -o HW

Программа GCC выполняет три этапа: обработку препроцессо-

ром, компиляцию, компоновку (линковку).

В приведенном примере препроцессор заменяет строчку

#include <stdio.h> на содержимое файла stdio.h. Чтобы по-

смотреть результат работы препроцессора и сохранить этот результат в файле наберите команду:

gcc -E helloworld.c -o helloworld.cpp

Следующий этап — компиляция, которая преобразовывает ис-

ходный текстовый файл в объектный:

gcc -c helloworld.c

В результате получается объектный файл helloworld.o. Для соз-

дания объектного файла из исходного кода обработанного препро-

8

цессором (helloworld.cpp) используется опция -x указывающая язык программирования и тип файла. Обработанный препроцессором файл С++ имеет тип cpp-output:

gcc -x cpp-output -c helloworld.cpp

Компоновка объединяет созданный компиляцией объектный файл с объектным файлом, который описывает stdio.h. В результате получается исполняемый файл. Например:

gcc helloworld.o -o helloworld

Знание всех этапов превращения текстового файла в программу необходимо для работы с большими проектами и исправления оши-

бок в самом инструментарии создания программ. Кроме того следует учесть что программирование с высокой степенью сложности проек-

тов выполняется на разных языках программирования, которые ис-

пользуются в одном проекте. В этом случае для каждого файла необ-

ходимо использовать свой компилятор, а затем соединять объектные файлы в одну программу.

9

2. Компилятор G++

Основным отличием компилятора G++ от GCC это подключае-

мые по умолчанию библиотеки языка С++. Несмотря на возможность создавать программы используя язык С++ с помощью компилятора

GCC, в таких случаях рекомендуется использовать G++. Все флаги и опции у G++ такие же, как и у GCC.

Рассмотрим исходный код на языке С++. Программа записана в файле main.cpp:

#include <iostream> #include "foo.h"

using namespace std;

int main (void) {

MESSAGE *message = new MESSAGE; message->show_message(); delete message;

return 0;

}

Класс MESSAGE описан в файлах foo.cpp и foo.h.

Файл foo.h:

#ifndef FOO_H_ #define FOO_H_

using namespace std;

class MESSAGE { public:

void show_message (void);

10

};

#endif

Файл foo.cpp:

#include <iostream> #include "foo.h"

using namespace std;

void MESSAGE::show_message (void) { cout << "Hello world!" << endl;

}

Для того чтобы получить исполняемый файл наберите команду,

если используется Windows:

g++ foo.cpp main.cpp -o HelloWorld.exe

или

g++ foo.cpp main.cpp -o HelloWorld

если используется Linux. В результате будет получен исполняе-

мый файл.

Список ключей компиляторов, приведен в приложении 1.

11

3. Автоматизация компиляции и сборки программ с помощью

утилиты make

Современные интегрированные среды быстрой разработки про-

грамм, такие как Delphi, Visual C++ .NET, KDeveloper и другие ис-

пользую средства автоматизации компиляции программ. Для этого используется текстовый файл, написанный по определенным прави-

лам и называемый Makefile. Этот же инструмент доступен и для ком-

пиляторов командной строки.

Makefile является списком правил. Каждое правило начинается с указателя, называемого "Цель". После него стоит двоеточие, далее через пробел указываются зависимости. Конечной целью сборки про-

граммы HelloWorld исполняемый файл HelloWorld зависящий от объ-

ектных файлов foo.o и main.o. Поэтому они должны быть собраны прежде HelloWorld. После зависимостей пишутся команды. Каждая команда должна находиться на отдельной строке, и отделяться от на-

чала строки клавишей Tab. Правила Makefile могут содержать пере-

менные, конструкции ветвления, циклы.

Приведем пример Makefile для программы написанной на C++ в

ОС Windows:

HelloWorld.exe: foo.o main.o

g++ foo.o main.o -o HelloWorld foo.o: foo.cpp foo.h

g++ -c foo.cpp main.o: main.cpp foo.h

g++ -c main.cpp

Выполняется Makefile утилитой make, т.е. необходимо находясь в каталоге с файлом Makefile дать команду:

make

Makefile в операционной системе Linux обычно содержит разде-

12