Читайте также:
|
|
ЛАБОРАТОРНАЯ РАБОТА № 1
АРГУМЕНТЫ И ОПЦИИ ПРОГРАММЫ. ФУНКЦИЯ getopt(). ЗНАКОМСТВО С ОТЛАДЧИКОМ gdb
Цель работы: Изучить основы создания программ на Си под Linux. Научиться обрабатывать параметры, полученные из командной строки, при помощи функции getopt(). Освоить простейшие приёмы работы с отладчиком gdb.
Программа выполнения работы.
1. Ознакомится с работой функциии getopt(). Разобрать пример, описанный в краткой теории.
2. Набрать, откомпилировать и запустить пример. Посмотреть, как он работает, используя отладчик gdb.
3. Составить программу обработки аргументов командной строки с помощью функции getopt согласно варианту задания.
4. Скомпилировать и продемонстрировать работу программы преподавателю.
5. Составить отчет.
Краткая теория.
Создание любой программы начинается с постановки задачи, проектирования и написания исходного кода. Обычно исходный код программы записывается в один или в несколько файлов, которые называются исходными файлами или исходниками. Исходные файлы создаются и набираются в любом текстовом редакторе. Но желательно, чтобы этот редактор был с «подсветкой» синтаксиса, т.е. выделял визуально ключевые слова используемого языка программирования. В результате исходный код становится более наглядным, а программист делает меньше ошибок. Для написания исходного кода в Linux вполне подойдут такие редакторы, как:
vi(Visual Interface)- полноэкранный редактор, разработанный Биллом Джоем. Практически все UNIX-подобные системы имеют такой редактор.
Emacs (Editor MACroS)- текстовый редактор, созданный Ричардом Столлманом.
Среди других редакторов следует отметить pico, jed и mcedit(Midnight Commander Editor). Они достаточно просты и удобны в использовании, хотя не обладают большими свойствами vi. Программы в Linux будем писать на языке программирования С.
Чтобы запустить уже написанную программу, ее надо скомпилировать(то есть перевести код на язык машины). Этим занимается программа компилятор. Компилятором языка С в Linux служит программа gcc (GNU C Compiler) из пакета компиляторов GCC (CNU COMPILER COLLECTION). Чтобы скомпилировать программу, необходимо вызвать gcc, указав в качестве аргумента имя исходного файла:
linux-> gcc lab1.c
Если компилятор не нашел ошибок, то в текущем каталоге появится файл а.out.Данный файл называется исполняемым. Чтобы его выполнить, достаточно ввести в командную оболочку путь к файлу:
limux->./a.out
Имя a.out не подходит для программы. Поэтому самое простое решение, это переименовать полученный файл.
linux->gcc lab1 lab1.c
Но есть лучше способ компиляции. Можно запустить компилятор с опцией –o, которая позволяет явно указать имя файла на выходе
linux->gcc –o lab1 lab1.c
Но компилятор не всегда может перевести исходный код в исполняемый. В достаточно объёмных программах исходный код разбивают на несколько частей, которые компилируются отдельно, а потом соединяются воедино. Каждый такой кусок называется объектным кодом или объектным модулем. Каждый такой модуль записывается в объектный файл, имеющий расширение “.o”. В результате компоновки может получиться исполняемый файл, а так же библиотеки. Для объединения объектных модулей служит компоновщик(Линковщик), а процесс объединения называют компоновкой, или линковкой. В Linux имеется компоновщик GNU ld, входящий в состав пакета GNU binutils. Ручная компановка может оказаться не эффективной в связи с тем, что компановщику передается очень много параметров. Но компилятор gcc может самостоятельно вызвать компоновщик, когда он потребуется.
Чтобы отказаться от автоматической компоновки, достаточно указать опцию –с
linux-> gcc –c lab1.c
В итоге, в текущем каталоге должен появится файл lab1.o. Далее можно надо сделать компоновку, это делается так:
linux -> gcc –o lab1 lab1.o
Дата добавления: 2014-12-15; просмотров: 101 | Поможем написать вашу работу | Нарушение авторских прав |