Ада-95. Компилятор GNAT

       

Опции компилятора


Программа gcc (или gnatgcc, для дистрибутива ALT) принимает следующие опции командной строки, которые позволяют непосредственно управлять процессом компиляции:

-b target Компиляция программы которая предназначена для запуска на платформе target. Здесь target подразумевает имя конфигурации системы. Если target не является той же самой системой на которой выполняется компиляция, то система компилятора GNAT должна быть построена и сконфигурирована так, чтобы обеспечивать кросс-компиляцию для платформы target.
-Bdir  -  Загрузить компилятор (например, Ада-компилятор gnat1) из каталога dir

вместо того, который определен соглашениями по умолчанию.

Использование этой опции имеет смысл только в случае доступности различных версий компилятора GNAT.

За более подробными сведениями следует обратиться к руководству по gcc.

Вместо этой опции обычно используются опции -b или -V.

-c  -  Выполнить компиляцию. Эта опция всегда используется при выполнении компиляции Ада-программы.

Примечательно, что можно использовать gcc (или gnatgcc) без опции -c

для выполнения компиляции и компоновки за один шаг.

Это вызвано необходимостью вызова редактора связей, но в текущий момент gnatgcc

не может быть использован для запуска редактора связей GNAT.

-g  -  Выполнить генерацию отладочной информации.

Эта информация сохраняется в объектном файле и, затем, копируется из него в результирующий выполняемый файл компоновщиком, после чего, отладочная информация может быть прочитана и использована отладчиком.

Опцию -g необходимо использовать если планируется последующее использование отладчика (как правило gdb).

-Idir  -  Указывает компилятору каталог dir для поиска файлов с исходными текстами необходимыми для текущей компиляции.
-I-  -  Указывает компилятору, что не нужно искать файлы с исходными текстами в каталогах указанных в командной строке.
-o file  -  Эта опция используется для перенаправления вывода генерируемого компилятором объектного файла и ассоциируемого с ним ALI-файла.




Данная опция нуждается в аккуратном использовании поскольку это может привести к тому, что объектный файл и ALI-файл будут иметь различные имена, что в результате может "запутать" редактор связей gnatbind и компоновщик gnatlink.
-O[n]  -  Здесь, значение n определяет уровень оптимизации:

n = 0  -  Оптимизация отсутствует, установлено по умолчанию если не указана опция -O

n = 1  -  Нормальная оптимизация, установлено по умолчанию если указана опция -O

без операнда
n = 2  -  Экстенсивная оптимизация
n = 3  -  Экстенсивная оптимизация с автоматической встроенной подстановкой (inline). Это применяется только для встроенной подстановки внутри модулей.
-S  -  Используется совместно с опцией -c для генерации файла с исходным текстом на языке ассемблера (расширение имени файла .s) вместо файла с объектным кодом.

Это может быть полезно когда необходима проверка генерируемого кода для ассемблера.
-v  -  Установить "многословный" режим, который показывает все команды, генерируемые gcc

(gnatgcc).

Обычно используется только в целях отладки или когда необходимо убедиться в правильности используемой/запускаемой версии компилятора.
-V ver  -  Запустить на выполнение версию компилятора ver. Подразумевается версия gcc (gnatgcc), а не версия GNAT.
-funwind-tables  -  Эта опция производит генерацию объектного файла с unwind table information.

Это требуется для обработки исключений с нулевыми затратами производительности, которая использует трассировочные способности библиотеки GNAT.
-gnata  -  Активирует использование контрольных инструкций (assertion) устанавливаемых директивами компилятора "pragma Assert" и "pragma Debug".
-gnatb  -  Генерировать краткие сообщения на stderr даже при установленном опцией -v "многословном" режиме.
-gnatc  -  Выполнить проверку синтаксиса и семантики (без генерации какого-либо выходного кода).
-gnatD  -  Выводить расширенные исходные тексты для отладки на уровне исходных текстов. Эта опция подавляет генерацию информации о перекрестных ссылках (см. опцию -gnatx).
-gnate  -  Принудительная генерация сообщений об ошибках (используется в случае разрушения компилятора при компиляции).
-gnatE  -  Выполнить полную проверку динамической элаборации.
-gnatf  -  Полные ошибки. Множественные ошибки в одной строке, все неописанные ссылки.
-gnatF  -  Все внешние имена приводить к верхнему регистру.
-gnatg  -  Активация проверки стиля написания исходного текста.
-gnatG  -  Отобразить генерируемый расширенный код в виде исходного текста.
-gnatic  -  Установить кодировку символов для идентификаторов в исходном тексте (c=1/2/3/4/8/p/f/n/w).
-gnath  -  Выдать информацию об использовании. Вывод осуществляется на stdout.
-gnatkn  -  Ограничить длину имен файлов длиной n (1-999) символов (k = krunch).
-gnatl  -  Выводить полный листинг исходных текстов, включая встроенные сообщения об ошибках.
-gnatmn  -  Ограничить число детектируемых ошибок величиной n (1-999).
-gnatn  -  Активировать встроенную подстановку (inline) в пределах модуля для подпрограмм, которые указаны в директивах компилятора Inline.
-fno-inline  -  Подавить любые встроенные подстановки (inline), даже если активированы другие опции оптимизации и встроенная подстановка.
-fstack-check  -  Активировать проверку состояния стека.
-gnato  -  Активация прочих проверок, которые обычно не используются по умолчанию, включая проверку численного переполнения и проверку доступа до проверки элаборации.
-gnatp  -  Подавить все проверки.
-gnatq  -  При обнаружении ошибки синтаксического разбора, попытаться осуществить семантическую проверку.
-gnatP  -  Включение опроса.

Это требуется на некоторых системах (в частности, для Windows NT) для осуществления асинхронного принудительного прекращения и способности асинхронной передачи управления.
-gnatR  -  Вывести информацию о представлении описанных типов массивов и записей.
-gnats  -  Выполнить синтаксическую проверку.
-gnatt  -  Сгенерировать выходной файл дерева.
-gnatT nnn  -  Установить квант времени (time slice) в указанное число миллисекунд.
-gnatu  -  Вывести список модулей текущей компиляции.
-gnatU  -  Обозначить все сообщения об ошибках уникальной строкой "error:".
-gnatv  -  Установить "многословный" режим. Выполняется полный вывод сообщений об ошибках с выводом строк исходного текста на stdout.
-gnatwm  -  Установить режим выдачи предупредительных сообщений. Где m=s,e,l соответственно означает: подавление сообщений (suppress), трактовать как ошибку (treat as error), предупреждения элаборации (elaboration warnings).
-gnatWe  -  Установить кодировку для wide character

(e=n/h/u/s/e/8).
-gnatx  -  Подавление генерации информации о перекрестных ссылках.
-gnatwm  -  Режим предупреждающих сообщений.
-gnaty  -  Включение встроенной проверки стиля.
-gnatzm  -  Генерация и компиляция распределенных "заглушек". Где, m=r/c "заглушка" приемника (receiver)/вызова (caller).
-gnat83  -  Установить принудительные ограничения Ada 83.
-gnat95  -  Установить стандартный режим Ada 95.

Содержание раздела