Разработка приложений в среде Linux - [12]

Шрифт
Интервал

для выхода из Emacs. С помощью обучающей программы можно узнать, где получить дополнительную информацию по Emacs. Здесь вы не узнаете, как получить руководство по Emacs, распространяемое вместе с самим редактором. Для вызова этого руководства наберите >^hi.

Несмотря на то что пользовательский интерфейс Emacs не такой красочный, как некоторые графические среды IDE, в этом редакторе есть множество мощных средств, которые могут понадобиться многим программистам. Например, при использовании Emacs для редактирования кода С. Emacs распознает тип файла и переходит в режим редактирования С, в котором распознается синтаксис С, что может помочь при поиске опечаток. Если вы запускаете компилятор из Emacs, редактор распознает сообщения об ошибках и предупреждениях компилятора, и позволяет перейти на строку с ошибкой при помощи одной команды, даже если для этого придется открыть новый файл. В Emacs также имеется режим отладки: отладчик находится в одном окне и проходит по коду, который вы отлаживаете в другом окне.

4.1.2. >vi

Если вы быстро набираете текст и хотите, чтоб ваши пальцы находились в правильном положении[3], >vi вам наверняка понравится, поскольку его набор команд был разработан таким образом, чтобы движений пальцев печатающего было как можно меньше. Этот редактор также ориентирован на пользователей Unix. Если вы знакомы с >sed или >awk либо другими программами Unix, использующими стандартные регулярные выражения с >^ для перехода к началу строки и >$ для перехода к ее концу, работа с >vi покажется вам простой и естественной.

К сожалению, освоение >vi может оказаться более сложным, нежели Emacs. Дело в том, что хоть пособия по >vi подобны учебникам по Emacs, ни в одной версии >vi нет стандартного способа запуска учебного пособия. Тем не менее, многие версии, включая версию, поставляемую с обычными дистрибутивами Linux, поддерживают команду >:help.

В наиболее общей версии >vi, >vim ("Vi IMproved"), есть множество интегрированных средств из набора разработки Emacs, включая выделение синтаксиса, автоматическое расположение текста, язык написания сценариев и разбор ошибок компилятора.

4.2. >make

Основой программирования под Unix является >make — средство, которое существенно упрощает описание компиляции программ. Даже притом, что небольшим программам порой достаточно одной команды для компиляции их исходного кода в исполняемый файл, все же намного легче написать >make, чем строку вроде >gcc -02 -ggdb -DSOME DEFINE -о foo foo.c. Более того, если имеется множество файлов для компиляции, а код был изменен лишь в некоторых из них, >make создаст новые объектные файлы только для тех файлов, на которые повлияли изменения. Чтобы >make совершила это "чудо", потребуется описать все файлы в make-файле (Makefile), пример которого показан ниже.

> 1: # Makefile

> 2:

> 3: OBJS = foo.о bar.о baz.o

> 4: LDLIBS = -L/usr/local/lib/ -lbar

> 5:

> 6: foo: $(OBJS)

> 7:       gcc -o foo $ (OBJS) $ (LDLIBS)

> 8:

> 9: install: foo

>10:       install -m 644 foo /usr/bin

>11: .PHONY: install

• Строка 1 — это комментарий; >make следует обычной традиции Unix определения комментариев с помощью символа >#.

• В строке 3 определяется переменная по имени >OBJS как >foo.о bar.о baz.о.

• В строке 4 определяется другая переменная — >LDLIBS.

• В строке 6 начинается определение правила, которое указывает на то, что файл foo зависит от (в этом случае, собран из) файлов, имена которых содержатся в переменной >OBJS. >foo называется целевым объектом, а >$(OBJS) — списком зависимостей. Обратите внимание на синтаксис расширения переменной: имя переменной помещается в >$(...).

Строка 7 — это командная строка, указывающая на то, как построить целевой объект из списка зависимостей. Командных строк может быть много, и первым символом в командной строке должна быть табуляция.

• Строка 9 — довольно интересный целевой объект. Фактически тут не предпринимается попытка создать файл по имени >install; вместо этого (как видно в строке 10) >foo инсталлируется в >/usr/bin с помощью стандартной программы >install. Эта строка вызывает неоднозначность в >make: что, если файл >install уже существует и является более новым, нежели >foo? В этом случае запуск команды >make install приведет к выдаче сообщения >'install' is up to date (install является новее) и завершению работы.

• Строка 11 указывает >make на то, что >install не является файлом, и что необходимо игнорировать любой файл по имени >install при вычислении зависимости >install. Таким образом, если зависимость >install была вызвана (как это сделать мы рассмотрим далее), команда в строке 10 всегда будет выполняться. >.PHONY — это директива, которая изменяет операцию >make; в этом случае она указывает >make на то, что целевой объект >install не является именем файла. Целевые объекты >.PHONY часто используются для совершения действий вроде инсталляции или создания одиночного имени целевого объекта, которое основывается на нескольких других уже существующих целевых объектов, например:

>all: foo bar baz

>.PHONY: all

К сожалению, >.PHONY не поддерживается некоторыми версиями make. Менее очевидный, не такой эффективный, но более переносимый способ для этого показан ниже.


Рекомендуем почитать
Это ваше Fido

Одно из немногих изданий на русском языке, которое посвящено старейшей глобальной компьютерной сети "Fidonet". Сатирический справочник о жизни и смерти самого древнего сетевого сообщества, которое до сих пор существует среди нас.


Безопасность информационных систем

В пособии излагаются основные тенденции развития организационного обеспечения безопасности информационных систем, а также подходы к анализу информационной инфраструктуры организационных систем и решению задач обеспечения безопасности компьютерных систем.Для студентов по направлению подготовки 230400 – Информационные системы и технологии (квалификация «бакалавр»).


UNIX — универсальная среда программирования

В книге американских авторов — разработчиков операционной системы UNIX — блестяще решена проблема автоматизации деятельности программиста, системной поддержки его творчества, выходящей за рамки языков программирования. Профессионалам открыт богатый "встроенный" арсенал системы UNIX. Многочисленными примерами иллюстрировано использование языка управления заданиями shell.Для программистов-пользователей операционной системы UNIX.


QNX/UNIX: Анатомия параллелизма

Книга адресована программистам, работающим в самых разнообразных ОС UNIX. Авторы предлагают шире взглянуть на возможности параллельной организации вычислительного процесса в традиционном программировании. Особый акцент делается на потоках (threads), а именно на тех возможностях и сложностях, которые были привнесены в технику параллельных вычислений этой относительно новой парадигмой программирования. На примерах реальных кодов показываются приемы и преимущества параллельной организации вычислительного процесса.


Виртуальные  машины: несколько компьютеров в  одном

Применение виртуальных машин дает различным категориям пользователей — от начинающих до IT-специалистов — множество преимуществ. Это и повышенная безопасность работы, и простота развертывания новых платформ, и снижение стоимости владения. И потому не случайно сегодня виртуальные машины переживают второе рождение.В книге рассмотрены три наиболее популярных на сегодняшний день инструмента, предназначенных для создания виртуальных машин и управления ими: Virtual PC 2004 компании Microsoft, VMware Workstation от компании VMware и относительно «свежий» продукт — Parallels Workstation, созданный в компании Parallels.


Недокументированные и малоизвестные возможности Windows XP

Книга содержит подробные сведения о таких недокументированных или малоизвестных возможностях Windows XP, как принципы работы с программами rundll32.exe и regsvr32.exe, написание скриптов сервера сценариев Windows и создание INF-файлов. В ней приведено описание оснасток, изложены принципы работы с консолью управления mmc.exe и параметрами реестра, которые изменяются с ее помощью. Кроме того, рассмотрено большое количество средств, позволяющих выполнить тонкую настройку Windows XP.Эта книга предназначена для опытных пользователей и администраторов, которым интересно узнать о нестандартных возможностях Windows.