Компилятор
Компилятор производит синтаксический анализ исходного кода алгоритма и преобразует исходные тексты в исполняемый бинарный код (файл *.ibx). Некоторые параметры компиляции могут быть заданы на закладке Компиляция диалога настроек среды разработки.
Для компиляции проекта необходимо нажать клавишу F7, кнопку на панели инструментов, либо выбрать пункт меню Проект/Компиляция. При этом компиляция производится только в том случае, если в исходных файлах были произведены изменения с момента последней компиляции. Для принудительного запуска компиляции, независимо от того, были ли изменения или нет, необходимо нажать клавиши Ctrl+F7, либо выбрать пункт меню Проект/Компилировать все.
Компиляция может осуществляться в двух конфигурациях: "Релиз" и "Отладка". Переключать активную конфигурацию можно при помощи клавиш Ctrl+Shift+D, кнопки на панели инструментов, либо пункта меню Проект/Конфигурация отладки. Папки, в которые помещаются *.ibx-файлы, получаемые в результате компиляции, для каждой конфигурации задаются на закладке Папки диалога настроек среды разработки, а путь к файлу относительно этих папок для отдельного проекта – на закладке Вывод диалога настроек проекта.
Некоторые опции компилятора для каждой конфигурации конкретного проекта можно задать на закладке Конфигурации диалога настроек проекта.
В процессе компиляции в проект программы могут автоматически добавляться используемые файлы:
- ibl - в папку Используемые библиотеки;
- bmp, gif, jpg, ico - в папку Изображения;
- ibf - в папку Табличные формы.
- evd - в папку События.
О файлах и папках проекта см. подробнее Файлы проекта.
При включенной опции Выводить информационные сообщения при компиляции на странице Компиляция настроек среды разработки в окно вывода записываются сообщения о добавлении файлов в проект.
Директивы компилятора
Директивы компилятора позволяют задать папку проекта и опции файла при автоматическом добавлении файла в проект.
Директива | Тип | Комментарий |
---|---|---|
filegroup | строка | Папка проекта для размещения файла. Если папка еще не существует, то она создается. Если директива не задана, то файл добавляется в автоматическую папку Используемые билиотеки. В пути папки поддерживается особый синтаксис (см. ниже), позволяющий управлять деталями добавления. |
publish | логика | Признак публикации файла с проектом. По умолчанию - ДА. |
encode | логика | Признак создания закрытой библиотеки. По умолчанию - НЕТ. |
filelink | строка | Имена дополнительных файлов, которые следует включить в проект при компиляции. Директива может указываться более одного раза для добавления нескольких файлов. Имена файлов следует указывать с расширением, чтобы среда разработки определила, где искать файл и в какую папку проекта его помещать. После имени файла через символ ">" можно указать путь к папке в проекте. Разделителем в пути папки служит "/". В пути папки поддерживается особый синтаксис (см. ниже), позволяющий управлять деталями добавления. |
bookmark | строка |
Позволяет создать закладку (гиперссылку) в окне файлов проекта для отсылке к различной документации и другим сопутствующим материалам.
Директива может указываться более одного раза в одном файле для добавления нескольких закладок.
Параметры закладки указываются разделенные символом '|'. Определение параметра включает имя, знак '=' и значение параметра.
Поддерживаются следующие имена параметров:
Закладки отображаются в окне проекта. |
Пример:
#filegroup = "Общие библиотеки" #publish = НЕТ #filelink = "Общий.evd" #filelink = "ОбщаяШапка.ibf" #filelink = "Пример1.xml>Примеры/XML" #bookmark = "text=Сайт Инфо-Бухгалтер | URL=http://www.ib.ru" #bookmark = "text=База знаний | url=http://www.ib.ru/wiki | folder=Прочее" #bookmark = "text=Связанный проект | url=ide://Общие/Путеводитель/ДлгПутеводитель.ibp | folder=Связанные проекты" #bookmark = "text=Справка | url=*keyword=ПРОВОДКА"
Для директив filegroup и filelink поддерживается синтаксис для управления созданием новых папок проекта. В начале пути может указываться символ @ и тег автоматической папки. Если тег не указан, то подразумевается папка "Используемые библиотеки". Например, путь папки "@tabform/Печать" создает подпапку "Печать" в автоматической папке "Табличные формы". Также поддерживаются теги "image" - для изображений и "event" - для файлов событий. Для каждого уровня папок можно указать режим вставки: в начало, в конец или по алфавиту (по умолчанию). Для этого перед именем папки можно указать символ "-" - для вставки в начало или "+" - для вставки в конец. Например, путь "-Уровень1/+Уровень2/Уровень3" добавит папку "Уровень1" в начало списка, "Уровень2" - в конец списка, а "Уровень3" - по алфавиту. Если указанная папка уже существует в проекте, то ее позиция не изменяется, а все дополнительные параметры игнорируются.
Компиляция конфигураций
Для компиляции проекта можно также выбрать пункт меню Проект/Компиляция конфигураций...
В данном диалоге необходимо выбрать, в каких конфигурациях будет производиться компиляция. При установке опции Только при наличии изменений компиляция будет производиться только если с момента последней компиляции в файлах проекта были произведены изменения.
При включении опции Создать файлы листинга проектов после компиляции проекта создаваться XML файлы со списком используемых модулей, исходных файлов, типов, функций и др. Файл листинга помещается в папку проекта. Имя файла листинга составляется из имени проекта и имени конфигурации:
<имя файла проекта>.<конфигурация>.xml
Информация о выполнимых файлах
Для просмотра информации о выполнимых файлах проекта (.ibx) можно выбрать пункт меню Проект/Информация о выполнимых файлах.... В диалоге отображается путь, размер и время изменения выполнимого файла для конфигураций "Отладка" и "Релиз". Также отображается признак необходимости компиляции, вычисляемый по времени модификации выполнимого файла, файла проекта и всех файлов исходных текстов.
Пакетная компиляция
Среда разработки поддерживает групповую компиляцию проектов программ. Проекты программ организуются в виде пакетных проектов. Наполнение пакетного проекта осуществляется на закладке Файлы окна проекта. Т.к. элементами пакетного проекта могут быть другие пакетные проекты, то включенные пакетные проекты и проекты программ образуют дерево, листьями которого являются проекты программ. Навигатор пакетного проекта отображает это дерево проектов. При компиляции пакетного проекта осуществляется обход дерева проектов с пропуском повторов.
Некоторые параметры пакетного проекта подавляют соответствующие параметры проектов программ. Например, уровень предупреждений.
Во время выполнения пакетной компиляции отображается следующий диалог:
Проверочная компиляция
Компилятор поддерживает специальный режим обработки файла без генерации исполнимого кода. В этом режиме все определенные в исходном файле типы, функции, константы и переменные принудительно используются. В обычном режиме компилятор "заглядывает" только в те определения, которые реально используются в проекте. Проверочная компиляция позволяет убедиться, что весь исходный файл не содержит синтаксических ошибок.
Запустить проверку текущего файла можно нажав Shift+F7, либо выбрать пункт меню Проект/Компилировать файл. Проверить сразу все файлы, входящие в прооект можно нажав Ctrl+Shift+F7, либо выбрать пункт меню Проект/Компилировать все файлы.