global compiler directives/ru
Deutsch · English · Français · Русский
Free Pascal поддерживает директивы компилятора директивы компилятора в исходном файле. В основном поддерживаются те же директивы, что и в Turbo Pascal, Delphi и Apple Pascal (Mac OS). Некоторые из них признаны только для совместимости и не имеют никакого эффекта.
Синтаксис
Общий:
- {$mode} выбирает режим компилятора
- {$modeSwitch} включает или выключает определенные функции режима
Конкретный:
- {$extendedSyntax} позволяет использовать функции, как если бы они были процедурами (прим.перев.: т.е. результат вызова функции не обязан присваиваться переменной)
- {$pointerMath}позволяет арифметические операции с указателями (начиная с FPC 2.6.0)
- {$openStrings} или {$P} определяет, все ли стандартные параметры типа
stringсчитаются параметрами открытых строк; этот параметр действует только для коротких строк(ShortString), но не дляANSIString. - {$varPropSetter}
Генерация кода
- {$codePage} определяет, какая кодовая страница используется программой
- {$E} эмулирует сопроцессор
- {$extension} определяет суффикс имени сгенерированного исполняемого файла
- {$libPrefix} определяет префикс имени файла сгенерированной библиотеки
- {$libSuffix} определяет суффикс имени файла сгенерированной библиотеки
- {$memory} определяет размер используемой памяти
- {$PascalMainName} определяет имя точки входа
- {$PIC} позволяет позиционно-независимую генерацию кода
- {$smartlink} определяет умное связывание
- {$sysCalls} определяет правила вызова системных вызовов Amiga/MorphOS
Включение данных
- {$debugInfo} или {$D} вставляет отладочную информацию GNU в сгенерированный код
- {$referenceInfo} или {$Y} создает Delphi-совместимую информацию о браузере (пока поддерживается не полностью)
Пути
- {$frameworkPath} (для Darwin)
- {$includePath} определяет путь для включаемых файлов
- {$libraryPath} определяет путь к файлам библиотеки
- {$objectPath} задает путь для поиска объектных файлов
- {$unitPath} определяет путь поиска для модулей
Целезависимые
Только Novell NetWare
- {$copyright} вставляет информацию об авторских правах
- {$screenName} определяет отображаемое имя приложения
- {$threadName} задает имя потока
Только Palm OS и Garnet OS
{$appID}задает четырехсимвольный идентификатор приложения{$appName}определяет название приложения
Windows-подобные системы
- {$imageBase} указывает базовое местоположение образа DLL
{$minStackSize}устанавливает минимальный размер стека для исполняемого файла{$maxStackSize}устанавливает максимальный размер стека для исполняемого файла{$setPEFlags}устанавливает флаги PE в Windows{$version}задает номер версии DLL
Разное
- {$appType} задает тип программы (CONSOLE, GUI и т.д.)
Данные времени компиляции
- {$profile} эта директива включает или выключает генерацию кода профилирования.
Игонорируемые
{$description}: введен для совместимости и с FPC 3.0.4 игнорируется{$G}будет генерировать код 80286 с TP{$localSymbols}или{$L}Этот параметр (не путать с локальной директивой связывания файла {$ L file}) распознается для совместимости с Turbo Pascal, но игнорируется.{$N}распознается для совместимости с Turbo Pascal, но в остальном игнорируется, поскольку компилятор всегда использует сопроцессор для математических вычислений с плавающей точкой.{$O}включает уровень 2 оптимизации. Это больше не распознается начиная с FPC 2.0.0. Используйте взамен {$optimization}.{$weakPackageUnit}анализируется для совместимости с Delphi, но в противном случае игнорируется. Компилятор выдаст предупреждение при его обнаружении.
См. также
From the Free Pascal wiki, page "global compiler directives/ru", as it stood on 2020-04-29 after a change by Zoltanleo, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.