global compiler directives/ru
From Free Pascal wiki
Jump to navigationJump to search
│
Deutsch (de) │
English (en) │
français (fr) │
русский (ru) │
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, но в противном случае игнорируется. Компилятор выдаст предупреждение при его обнаружении.
См. также
Directives, definitions and conditionals definitions |
---|
global compiler directives • local compiler directives Conditional Compiler Options • Conditional compilation • Macros and Conditionals • Platform defines |