Создание исполняемого кода программы обычно выполняется в два этапа:
1. Исходные тексты программы преобразуются в файлы, состоящие из двоичных данных и инструкций процессору.
2. Все полученные файлы комплектуются с подпрограммами стандартных модулей и объединяются в одно целое.
В среде Delphi, начиная с версии 2 оба этих этапа не отделяются друг от друга и называются единым словом «компиляция».
Получаемые при этом файлы для отдельных модулей и программы проекта имеют расширение. DCU, а объединённый (исполнительный) файл расширение .EXE.
При необходимости можно получать и объектный файл с расширением .OBJ. Для этого необходимо установить следующую опцию Project|Options|Linker| GenerateObject. Файлы с расширением .OBJ можно компоновать с другими проектами, даже выполненными на другом языке.
При компиляции отслеживается все возможное множество синтаксических ошибок. Если они имеются, то в нижней части окна редактора выдаётся соответствующее множество строк. Каждая из них содержит:
1.Указатель имени файла, в котором найдена ошибка.
|
|
2. Номер строки текста с этой ошибкой.
3. Краткое объяснение этой ошибки.
В частности, указываются типы ошибок: простая ошибка, фатальная ошибка, предупреждение, рекомендация.
При обнаружении простых и фатальных ошибок компиляция прекращается. При обнаружении рекомендаций и предупреждений компиляция не прекращается. Соответствующие сообщения выдаются только при отсутствии других типов ошибок и при установке опций Project|Options|Compile|Show hints и Project|Options| Compile|Show warning соответственно.
Цели компиляции для отладки или для оптимизации программы во многом противоречивы. Поэтому для каждого варианта работы необходима своя настройка режима работы компилятора. Установки выполняются двумя способами:
1. Директивами компилятора.
2. Соответствующими им установками опций компиляции командами через главное меню.
Директивы компилятора имеют приоритет над командами главного меню.
Директивы компилятора помещаются в тексте программы в виде комментариев, за открывающей фигурной скобкой которых помещен знак доллара.
Пример записи одной и той же директивы в двух видах – в полном и кратком:
{$Boolean off} {$B-}
Краткий вид директивы состоит из одной буквы (обычно это первая буква полного вида имени директивы). Переключающие директивы после имени директивы имеют в полной форме признаки ON или OFF для обозначения включения или выключения директивы. Для краткой формы они обозначаются знаками + или -. Переключающие директивы можно задавать в одном комментарии через запятую. Как только встречается пробел, так следующая часть рассматривается как чистый комментарий.
|
|
Пример:
{$А+,В-}.
Глобальные директивы помещаются в начале программы. Впереди них могут располагаться только другие глобальные директивы, заголовок или комментарии. Глобальные директивы действуют на всю программу. Локальные директивы помещаются в любом месте программы. Их действие распространяется до конца файла или до следующей директивы, отменяющей данную.