Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Написание программ при помощи команды make




Интерфейсы gdb и другие отладчики

Хотя gdb можно использовать в shell, никто обычно этого не делает. Программа Emacs предлагает простой интерфейс, который избавит пользователя от большого количества вводимых команд и поможет избежать ошибок. Команда Emacs M-x gdb инициализирует новое окно с запущенным gdb, воспринимающее все сокращенные команды. Emacs также интерпретирует вывод от gdb, чтобы пользователю было удобнее интерпретировать результаты. Когда достигается точка останова, Emacs получает от gdb имя файла и номер строки, чтобы показать содержимое этого файла, с отмеченной точкой останова или ошибкой. Когда производится отладка программы по шагам, Emacs следует за операторами по файлу(-ам) исходного модуля.

KDbg является графическим интерфейсом к gdb в среде KDE. Это означает, что KDbg сам по себе не является отладчиком. Он общается с gdb, отладчиком, использующим командную строку, посылая ему команды и получая их результат, например, значения переменных. Пункты меню и указания "мышью" преобразуются в последовательность команд gdb, а результат преобразуется к более-менее визуальному представлению, такому как структурное содержимое переменных. KDbg не может делать больше, чем делает gdb. Например, если имеющаяся версия gdb не поддерживает отладку многопоточных программ, то и KDbg не поможет вам в этом (несмотря на то, что он выводит окно потоков).

Графическим интерфейсом для системы X Window является xxgdb. Интерфейсом для графического представления данных является ddd.

Кроме этого, следует упомянуть отладчик DBX, а среди коммерческих приложений - мощное средство TotalView.

Команда make ‑ одно из нескольких вспомогательных средств для автоматизации программирования, включенных в Red Hat Linux. Существуют и другие ‑ pmake (параллельный make), imake (генератор Makefile, обычно применяемый для создания X11-приложений), automake и новое средство autoconf, предназначенное для создания сценариев конфигурации параметров компиляции.

История возникновения команды make восходит к ранней версии UNIX ‑ System V. Make используется для автоматического управления созданием и установкой программы. Уникальность программы make состоит в том, что она автоматически создает приложения с учетом изменений, внесенных в его исходный код. По умолчанию make использует файл Makefile. Однако, запуская make с опцией -f, можно использовать любой Makefile, например, MyMakeFile:

make -f MyMakeFile

Makefile ‑ это текстовый файл, содержащий инструкции о том, какие шаги должны быть сделаны препроцессором, компилятором и компановщиком. Makefile задает, какие файлы должны быть скомпилированы для определенного модуля. В нем также указана командная строка компилятора и его опции. Он также указывает, какие кодовые модули нужны для создания программы. Этот механизм называется проверкой зависимости (dependency checking).

 

Благодаря использованию макросов, команда makeпозволяет сделать программу переносимой между разными платформами. Это дает возможность пользователям других операционных систем изменять программу в соответствии со своими нуждами. В следующем примере макросы определяют: имя компилятора (cc); инсталляционной программы (INS); место, где должна быть установлена программа (INSDIR); путь к нужным библиотекам (LIBDIR);имена библиотек (LIBS); исходный файл (SRC); промежуточный объектный файл (OBS); имя окончательной программы (PROG):

 

# Пример makefile for skeleton program CC= gcc

INS= install

INSDIR = /usr/local/bin

LIBDIR = -L/usr/X11R6/lib

UBS = -IXm - ISM -MCE -IXt -1X11

SRC = skel.c

OBJS = skel.o

PROG = skel

skel: ${OBJS}

$ {СС} -о ${PROG} ${SRC} ${LIBDIR} ${LIBS}

install: ${PROG}

${INS} -g root -o root ${PROG} ${INSDIR}

 

ПРИМЕЧАНИЕ. Очень важно запомнить, что в этой программе не должно быть пробелов, вместо них используется символ табуляции. Визуально, трудно увидеть разницу, однако при наличии пробелов программа работать должным образом не будет.

 

Чтобы создать только программу (например, программу skel), нужно использовать команду:

make skel

Если изменить какой-либо элемент конечного объекта, например исходный кодовый файл, makeперестроит конечный файл и зависимые компоненты. Преимущество команды make в ее гибкости. Можно пользоваться простыми Makefile. А можно написать сложный Makefile, содержащий множество макросов правил и команд. Есть возможность заставить ваши макросы собирать программы, обновлять систему или функционировать как систему управления документами. Команда make работает практически с любой программой, включая системы создания и редактированию текстов, например ТеХ.

 




Поделиться с друзьями:


Дата добавления: 2015-06-27; Просмотров: 390; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.