global compiler directives/ru: what changed
Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.
Title: global compiler directives/ru
| Old | New | Line | |
|---|---|---|---|
| 1 | + | Free Pascal поддерживает [[Compiler directive|директивы компилятора]] директивы компилятора в [[Source code|исходном файле]]. В основном поддерживаются те же директивы, что и в Turbo Pascal, Delphi и Apple Pascal (Mac OS). Некоторые из них признаны только для совместимости и не имеют никакого эффекта. | |
| 2 | + | ||
| 3 | + | ## Синтаксис | |
| 4 | + | ||
| 5 | + | Общий: | |
| 6 | + | ||
| 7 | + | - [[$mode|{$mode}]] выбирает режим компилятора | |
| 8 | + | - [[$modeSwitch|{$modeSwitch}]] включает или выключает определенные функции режима | |
| 9 | + | ||
| 10 | + | Конкретный: | |
| 11 | + | ||
| 12 | + | - [[$extendedSyntax|{$extendedSyntax}]] позволяет использовать функции, как если бы они были процедурами (прим.перев.: т.е. результат вызова функции не обязан присваиваться переменной) | |
| 13 | + | - [[$pointerMath|{$pointerMath}позволяет]] арифметические операции с указателями (начиная с [[User Changes 2.6.0|FPC 2.6.0]]) | |
| 14 | + | - [[$openStrings|{$openStrings} или {$P}]] определяет, все ли стандартные параметры типа `string` считаются параметрами открытых строк; этот параметр действует только для коротких строк(`ShortString`), но не для `ANSIString`. | |
| 15 | + | - [[$varPropSetter|{$varPropSetter}]] | |
| 16 | + | ||
| 17 | + | ## Генерация кода | |
| 18 | + | ||
| 19 | + | - [[$codePage|{$codePage}]] определяет, какая кодовая страница используется программой | |
| 20 | + | - [[$E|{$E}]] эмулирует сопроцессор | |
| 21 | + | - [[$extension|{$extension}]] определяет суффикс имени сгенерированного [[Executable program|исполняемого]] файла | |
| 22 | + | - [[$libPrefix and $libSuffix|{$libPrefix}]] определяет префикс имени файла сгенерированной библиотеки | |
| 23 | + | - [[$libPrefix and $libSuffix|{$libSuffix}]] определяет суффикс имени файла сгенерированной библиотеки | |
| 24 | + | - [[$memory|{$memory}]] определяет размер используемой памяти | |
| 25 | + | - [[$pascalMainName|{$PascalMainName}]] определяет имя точки входа | |
| 26 | + | - [[$PIC|{$PIC}]] позволяет позиционно-независимую генерацию кода | |
| 27 | + | - [[$smartlink|{$smartlink}]] определяет умное связывание | |
| 28 | + | - [[$sysCalls|{$sysCalls}]] определяет правила вызова системных вызовов Amiga/MorphOS | |
| 29 | + | ||
| 30 | + | ## Включение данных | |
| 31 | + | ||
| 32 | + | - [[$debugInfo|{$debugInfo} или {$D}]] вставляет отладочную информацию GNU в сгенерированный код | |
| 33 | + | - [[$referenceInfo|{$referenceInfo} или {$Y}]] создает Delphi-совместимую информацию о браузере (пока поддерживается не полностью) | |
| 34 | + | ||
| 35 | + | ## Пути | |
| 36 | + | ||
| 37 | + | - [[$framework|{$frameworkPath}]] (для Darwin) | |
| 38 | + | - [[$include|{$includePath}]] определяет путь для включаемых файлов | |
| 39 | + | - [[FPC paths|{$libraryPath}]] определяет путь к файлам библиотеки | |
| 40 | + | - [[FPC paths|{$objectPath}]] задает путь для поиска объектных файлов | |
| 41 | + | - [[FPC paths|{$unitPath}]] определяет путь поиска для модулей | |
| 42 | + | ||
| 43 | + | ## Целезависимые | |
| 44 | + | ||
| 45 | + | ### Только Novell NetWare | |
| 46 | + | ||
| 47 | + | - [[$copyright|{$copyright}]] вставляет информацию об авторских правах | |
| 48 | + | - [[$screenName|{$screenName}]] определяет отображаемое имя приложения | |
| 49 | + | - [[$threadName|{$threadName}]] задает имя потока | |
| 50 | + | ||
| 51 | + | ### Только Palm OS и Garnet OS | |
| 52 | + | ||
| 53 | + | - `{$appID}` задает четырехсимвольный идентификатор приложения | |
| 54 | + | - `{$appName}` определяет название приложения | |
| 55 | + | ||
| 56 | + | ### Windows-подобные системы | |
| 57 | + | ||
| 58 | + | - [[$imageBase|{$imageBase}]] указывает базовое местоположение образа DLL | |
| 59 | + | - `{$minStackSize}` устанавливает минимальный размер стека для исполняемого файла | |
| 60 | + | - `{$maxStackSize}` устанавливает максимальный размер стека для исполняемого файла | |
| 61 | + | - `{$setPEFlags}` устанавливает флаги PE в Windows | |
| 62 | + | - `{$version}` задает номер версии DLL | |
| 63 | + | ||
| 64 | + | ### Разное | |
| 65 | + | ||
| 66 | + | - [[$appType|{$appType}]] задает тип программы (CONSOLE, GUI и т.д.) | |
| 67 | + | ||
| 68 | + | ## Данные времени компиляции | |
| 69 | + | ||
| 70 | + | - [[$profile|{$profile}]] эта директива включает или выключает генерацию кода профилирования. | |
| 71 | + | ||
| 72 | + | ## Игонорируемые | |
| 73 | + | ||
| 74 | + | - `{$description}`: введен для совместимости и с FPC 3.0.4 игнорируется | |
| 75 | + | - `{$G}` будет генерировать код 80286 с [[Turbo Pascal|TP]] | |
| 76 | + | - `{$localSymbols}` или `{$L}` Этот параметр (не путать с локальной директивой связывания файла {\$ L file}) распознается для совместимости с Turbo Pascal, но игнорируется. | |
| 77 | + | - `{$N}` распознается для совместимости с Turbo Pascal, но в остальном игнорируется, поскольку компилятор всегда использует сопроцессор для математических вычислений с плавающей точкой. | |
| 78 | + | - `{$O}` включает уровень 2 оптимизации. Это больше не распознается начиная с FPC 2.0.0. Используйте взамен [[$optimization|{$optimization}]]. | |
| 79 | + | - `{$weakPackageUnit}` анализируется для совместимости с Delphi, но в противном случае игнорируется. Компилятор выдаст предупреждение при его обнаружении. | |
| 80 | + | ||
| 81 | + | ## См. также | |
| 82 | + | ||
| 83 | + | - [[Pascal basics]] | |
| 84 | + | - [§ “global directives” in the *Free Pascal programmer’s guide*](https://www.freepascal.org/docs-html/prog/progse3.html) | |
| 85 | + | ||
| 86 | + | --- | |
| 87 | + | *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](/wiki-contact).* |
