(*) 5.1.5. Параметры для исходных кодов (опции языка)

На верх  Назад  Вперёд

Более подробную информацию см. в документе «Руководство программиста».

Параметр

Описание

-Mmode

Установить режим языка программирования. Здесь mode может принимать следующие значения:

 

delphi

Пытаться выполнять совместимость с Delphi. Этот режим более строгий, чем режим objfpc, потому что некоторые расширения Free Pascal будут отключены.

 

fpc

Диалект Free Pascal (по умолчанию).

 

macpas

Пытаться выполнять совместимость с диалектом Macintosh Pascal.

 

objfpc

Подключает некоторые расширение Delphi. Этот режим отличается от Delphi, так как имеет некоторые специфические конструкции Free Pascal.

 

tp

Пытаться выполнять совместимость с TP/BP 7.0. Это значит, что не будет работать перегрузка операций и т.п.

-Mfeature

Выбор функций языка в feature. Начиная с версии FPC 2.3.1 параметр командной строки –М может быть использован для выбора индивидуальных функций языка. В этом случае feature может принимать одно из следующих значений:

 

CLASS

Использовать классы Object Pascal.

 

OBJPAS

Автоматически подключать модуль ObjPas.

 

RESULT

Включить идентификатор Result для возвращения результата функциями.

 

PCHARTOSTRING

Разрешить автоматически преобразовывать строки с нулевым окончанием в строки.

 

CVAR

Разрешить использовать ключевое слово CVAR.

 

NESTEDCOMMENTS

Разрешить использовать вложенные комментарии.

 

CLASSICPROCVARS

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

 

MACPROCVARS

Использовать процедурные переменные в стиле Mac.

 

REPEATFORWARD

Объявление и реализация функций должны совпадать.

 

POINTERTOPROCVAR

Разрешить скрытно преобразовывать указатели в процедурные переменные.

 

AUTODEREF

Автоматически (скрытно) получать значения типизированных указателей.

 

INITFINAL

Разрешить использование Initialization и Finalization.

 

POINTERARITHMETICS

Разрешить использовать арифметические операции с указателями.

 

ANSISTRINGS

Разрешить использовать ANSI-строки.

 

OUT

Разрешить использовать параметр out.

 

DEFAULTPARAMETERS

Разрешить использовать по умолчанию значения параметра.

 

HINTDIRECTIVE

Поддерживать директивы подсказок (deprecated, platform и т.п.).

 

DUPLICATELOCALS

Allow method arguments with the same name as properties in classes.

 

PROPERTIES

Разрешить использовать глобальные свойства.

 

ALLOWINLINE

Разрешить входные процедуры.

 

EXCEPTIONS

Разрешить использовать исключения.

 

OBJECTIVEC1

Allow the use of objective C version 1. Разрешить использование objective C версии 1.

 

OBJECTIVEC2

Allow the use of objective C version 2. Разрешить использование objective C версии 2.

 

NESTEDPROCVARS

Allow assigning local procedures to procedural variables. Разрешить присвоения местных процедур в процедурных переменных.

 

NONLOCALGOTO

Allow a GOTO statement to jump outside the local scope (as ISO Pascal). Разрешить заявление GOTO прыгнуть за пределами локальной области видимости (как ISO Pascal).

 

ADVANCEDRECORDS

Allow the use of advanced records (records with methods/properties) Возможностью использования продвинутых записей (записи с методов / свойств)

 

ISOUNARYMINUS

Treat unary minus like in ISO Pascal: same precedence level as binary minus/plus. Лечить унарный минус, как в ISO Pascal: одинаковый уровень приоритета, как и бинарный минус / плюс.

 

Ключевое слово может сопровождаться знаком плюс (+) или минус (-) для включения или отключения функции.

-Rxxx

Определяет, какой тип ассемблера вы используете для ассемблерных блоков в исходном коде программ. Здесь ххх может принимать значения:

 

att

Блоки asm содержат ассемблер стиля AT&T. Это стиль по умолчанию.

 

intel

Блоки asm содержат ассемблер стиля Intel.

 

default

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

 

direct

Блоки asm копируются в ассемблер «как есть», только заменяются определённые переменные.

-S2

Включить расширения Delphi 2 (режим objfpc). Не рекомендуется. Используйте вместо этого –Mobjfpc.

-Sa

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

-Sc

Поддерживать операторы стиля С, например, *=, +=, /= и т.п.

-Sd

Пытаться выполнять совместимость с Delphi. Не рекомендуется. Используйте вместо этого –Mdelphi.

-SeN

Останавливать компилятор после N-ой ошибки. Обычно компилятор пытается продолжить работу после обнаружения ошибки, пока не накопится 50 ошибок или не случится фатальная ошибка, а затем останавливается. Если данная опция установлена, то компилятор остановится после N-ой ошибки (если N не указана, то она равна по умолчанию 1). Вместо числа может быть также указано n, h или w. В этом случае компилятор будет рассматривать замечания (n), подсказки (h) и предупреждения (w) как ошибки и остановится при превышении указанного количества.

-Sg

Поддерживать команды label и goto. По умолчанию эти команды не поддерживаются. Вы также должны указать этот параметр, если вы используете метки в операторах ассемблера (если вы используете стиль ассемблера AT&T).

-Sh

Использовать по умолчанию для строк ANSI-строки. Если эта опция указана, то компилятор будет интерпретировать ключевое слово string как ansistring. Иначе предполагается, что используются короткие строки (ТР стиль).

-Si

Поддерживать стиль строки С++.

-SIXXX

Установить стиль интерфейса как ХХХ.

-Sk

Загрузить Kylix-совместимый модуль (fpcylix).

-Sm

Поддерживать макросы стиля С.

-So

Пытаться выполнять совместимость с Borland TP 7.0. Не рекомендуется. Используйте вместо этого –Mtp.

-Ss

Имена конструкторов должны быть init, а имена деструкторов должны быть done.

-St

Разрешить ключевое слово static в объектах.

-Sx

Включить ключевые слова исключений (по умолчанию в режиме Delphi/Objfpc). Эта опция помечает все ключевые слова исключений как ключевые слова также в режимах Turbo Pascal и FPC. Это может быть использовано для проверки кода, который независим от режимов настолько, насколько это возможно.

-Un

Не проверять имя модуля. Обычно имя модуля совпадает с именем файла. Эта опция позволяет сделать эти имена различными.

-Us

Компилировать системный модуль (system). Эта опция заставляет компилятор определять только некоторые очень важные типы.