Sign in Join
Wiki copytemporary

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

OldNewLine
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).*

Back to history