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.
Talk about this page
Nobody has opened a bench for this page yet. Sign in to open one.
