global compiler directives/ru

From Free Pascal wiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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
$IF