1.3.4. Пункт Compile (компиляция)

We use cookies. Read the Privacy and Cookie Policy

Этот пункт главного меню содержит несколько опций для компиляции программ, в том числе три команды для собственно компиляции (рис. 1.13).

Рис. 1.13

Команды Compile, Make и Build — это три возможных пути для компиляции программ, состоящих из нескольких файлов. Дело в том, что результат работы команд Make и Build зависит от порядка внесения изменений в тексты программ, компилируемых совместно, а также от состояния опции Primary File в этом же меню. В связи с этим было бы полезно рассмотреть все команды пункта Compile подробно.

1.3.4.1. Команда компиляции Compile (Alt+F9). Эта команда инициализирует компиляцию и всегда обрабатывает текущий файл, находящийся в данный момент в окне Edit. При этом на экране

- 23 -

появляется окно информации о процессе (рис. 1.14). В нем показывается количество обработанных строк, объем доступной оперативной памяти и т.д.

Рис. 1.14

Если компиляция закончилась успешно (а это может произойти в случае, если не было ошибок), в нижней строке этого окна выдается сообщение о завершении процесса:

Success : Press any key

Успешно : Нажните любую клавишу

Если же была обнаружена ошибка, то Турбо Паскаль активизирует редактор и его курсор устанавливается в ту строку, в которой она была сделана. Расшифровку ошибки можно увидеть в верхней строке окна редактора. Заметим, что компилятор прекращает свою работу, как только обнаруживается ошибка. Исправив ее, можно обнаружить другую ошибку, расположенную ниже по тексту. Так можно проверить весь текст программы до конца, исправляя каждый раз ошибки. Детальное описание ошибки можно получить, нажав F1.

1.3.4.2. Команда избирательной компиляции Make (F9). Если программа состоит из модулей (которые могут быть взаимосвязанными) и исходные тексты модулей доступны системе, то было бы естественным перекомпилировать только те модули, которые претерпели изменения, а прочие подключить в уже откомпилированном виде. Именно такой режим компиляции задает команда Make. При ее подаче система проверяет все файлы модулей, составляющие программу, и если эти файлы изменены после последней компиляции, то они будут перекомпилированы. Также перекомпилируются все зависящие от них модули. При проверке файлов система сравнивает дату и время файла с исходным текстом и файла с кодом, полученным после компиляции. Команда Make плохо работает на ПЭВМ, не снабженных часами на аккумуляторах.

- 24 -

1.3.4.3. Команда общей компиляции Build. Команда Build производит компиляцию всех доступных системе текстов, составляющих программу, независимо от того, были ли они корректированы после компиляции или нет.

1.3.4.4. Опция назначения первого файла Primary file. Опция Primary file значительно упрощает работу с множеством файлов. Используя ее, можно указывать системе на главный файл в многофайловой программе. При этом любая команда компиляции будет обрабатывать именно этот файл, а не тот, что загружен в текущий момент в редактор. Файл, который ранее находился в редакторе, после компиляции восстановится в нем (правда, только в том случае, если не было ошибок).

Чтобы указать системе на первый файл, нужно выбирать пункт Compile главного меню, затем пункт Primary file. Турбо Паскаль покажет входное окно, указанное в описании команды Load (см. разд. 1.3.1.1). Выбор файла производится так же. После того как выбран файл, его имя будет все время появляться в окне информации о процессе, например:

Primary file (Первый файл): MAINPR.PAS

Теперь, если воспользоваться командами компиляции, то Турбо Паскаль сначала прочитает и загрузит в память Primary file, а затем начнет его компилировать.

Прежде чем закончить работу с одним программным проектом и приступить к другому, нужно удалить старое имя Primary file. Для этого выбирается в меню опция Primary file и нажимается клавиша пробела или комбинация клавиш Ctrl+Y. Имя Primary file при этом стирается из окна выбора файла.

1.3.4.5. Опция установки EXE- и TPU-файлов Destination. Эта опция используется для указания системе, куда должен быть помещен скомпилированный файл. В опции Destination определены две альтернативы: Memory и Disk (память и диск). По умолчанию коды компиляции сохраняются в памяти. Это очень удобно, так как можно производить изменения в программе и тут же видеть их результат. Ради такой работы, собственно, и была создана система Турбо Паскаль. Если же выбрана опция Disk, то выполняемые EXE-файлы и модули (TPU-файлы) всегда записываются на диск. Это необходимо для получения программы, которая может работать непосредственно под управлением MS-DOS.

1.3.4.6. Команда указания строки ошибки Find Error. Это важная команда для автономного компилятора. Тем не менее опишем ее здесь. Если во время выполнения программы по команде Run при включенном отладчике была обнаружена ошибка, то отладчик активизирует редактор, найдет строку, во время выполнения которой

- 25 -

произошла ошибка, установит туда курсор и выдаст в верхней строке окна Edit сообщение об ошибке (рис. 1.15).

Если же программа была запущена под управлением MS-DOS

Рис. 1.15

или из среды программирования при отключенном отладчике, то в случае ошибки ее выполнение прервется и на экране появится сообщение следующего вида:

Runtime error 200 at 20B0:8236

Ошибка выполнения 200 по адресу 20B0:8236

В нем содержится важная информация: номер ошибки и адрес команды, которая привела к ошибке. Воспользовавшись списком ошибок выполнения программ, можно по номеру ошибки определить ее вид. Например, ошибка 200 — это деление на ноль. Чтобы определить, в каком месте текста программы произошла ошибка, необходимо произвести следующие действия:

1) запомнить адрес, выданный в сообщении (лучше записать);

2) войти в систему Турбо Паскаль;

3) загрузить текст этой программы в редактор;

4) включить режим отладки (см. разд. 1.3.5.1);

5) откомпилировать программу (Alt+F9);

6) выбрать пункт Compile основного меню и в нем дать команду Find Error;

7) ввести запомненный (записанный) адрес в окна ввода адреса (рис. 1.16). После нажатия клавиши ввода в этом окне система быстро

Рис. 1.16

- 26 -

определит место ошибки в тексте программы, и курсор редактора укажет на строку, в которой произошла ошибка.

1.3.4.7. Команда получения общего состояния Get Info. Выбрав этот пункт меню, можно открыть на экране новое окно, содержащее различную информацию о текущем состоянии системы и программы (рис. 1.17).

Рис. 1.17